Siruri de caractere

O constanta de tip sir de caractere de declara intre doua caractere “.

In memoria interna, o constanta de acest tip este retinuta sub forma unui vector de caractere.

Fiecare componenta a sirului (incepand cu cea de indice 0) retine codul ASCII al caracterului pe care il memoreaza. Conventia este ca ultimul octet sa retina 0 (codul caracterului nul). Caracterul nul este memorat automat. Trebuie rezervate lungimea_sirului+1 caractere char (+1 pentru caracterul nul).

Limbajul C/C++ permite initializarea unui tablou de caractere printr-o constanta sir, care include automat caracterul null.

Exemple :

char vect[13]=”clasa a XI-a”; //s-au rezervat 13 octeti. Un octet este rezervat pentru caracterul nul

char vect[]=”clasa a XI-a”; //compilatorul face calculul numarului de octeti necesari

      char vect[50]=”clasa a XI-a”; //s-au rezervat mai multi octeti decat era necesar; 37 octeti raman neocupati

            Sirurile de caractere sunt de fapt tablouri de caractere, care au ca ultim element un terminator de sir, caracterul null.

Exemple:

declaratii

char tablouc[12] = {’c’, ’l’, ’a’, ’s’, ’a’,' ','a',' ','X','I','-','A'};    // tablou de caractere

      char sirc[13] = {’c’, ’l’, ’a’, ’s’, ’a’,' ','a',' ','X','I','-','A','\0'};   // sirul de caractere clasa a XI-a

char sc0[5] = ”clasa a XI-a”;//echivalent cu sirul sc

char sc00[] = ”clasa a XI-a”;//echivalent cu sirul sc

char sc1[5] = ”clasa a XI-a”;

char sir[50];

 

afisari si atribuiri

cout<<sirc<<"\n";  //afiseaza clasa a XI-a

cout<<tablouc<<"\n";   //eroare: tabloul de caractere poate fi afisat ca sir

cout<<s<<endln;    // eroare: tablou neinitializat

cout<<sc0[0];     // afiseaza primul caracter din sirul sc0 - c

cout<<sc1[4];     // afiseaza al patrulea caracter din sirul sc1 – a

sc0[0]=’p’;       // elementului din sir de indice 0 i se atribuie valoarea ‘p’;
cout<<sc0<<endln;       // se afiseaza plasa a XI-a

 sc0[4]='C';
 
cout<<sc0<<endln;       // se afiseaza plaCa a XI-a

counter for wordpress

View My Stats