1.6.4. Sir de caractere
2018/12/19 in Programare in C
O succesiune de zero sau mai multe caractere incluse intre ghilimele formeaza o constanta sir sau un sir de caractere.
La scrierea caracterelor din compunerea unui sir de caractere se pot utiliza secvente escape.
Exemple:
"Acesta este un sir de caractere"
"Prin secventa escape \" se reprezinta ghilimelele"
"Prin secventa escape \\ se reprezinta backslash"
"Apostroful se reprezinta obisnuit"
"s'a"
"alte\tsecvente\tescape\nintr-un sir"
Un sir poate fi continuat pe randul urmator folosind caracterul backslash. In acest scop se tasteaza backslash la sfarsitul randului care se continua, se trece pe randul urmator (actionand tasta Enter) si se continua cu tastarea caracterelor sirului respectiv.
Caracterul care precede pe backslash se va concatena cu primul caracter de pe randul urmator.
Caracterele unui sir de caractere se pastreaza in memorie intr-o zona contigua, prin codurile lor ASCII. Dupa ultimul caracter al sirului se pastreaza carcterul NUL, adica valoarea zero.
Acesta joaca rolul de marcaj de sfarsit al oricarui sir de caractere. Din cauza acestui marcaj, trebuie sa facem distinctie intre intre o constanta caracter care corespunde unui caracter si sirul de caractere care este format din acelasi caracter.
Astfel, constanta caracter 'A'
se pastreaza in memorie intr-un octet prin valoarea 65, pe cand sirul de caractere "A"
ocupa o zona de doi octeti - in primul octet se pastreaza valoarea 65, iar in al doilea caracterul NUL, adica valoarea zero.
In concluzie, un sir de caractere se pastreaza in memorie intr-o succesiune de octeti al carui numar este egal cu numarul caracterelor sirului marit cu 1, deoarece sirul se termina totdeauna prin caracterul NUL.
Observatii:
1. Fie sirul "a\1b"
.
Acest sir are in compunerea sa:
- caracterul a de cod ASCII 97;
- caracterul SOH de cod ASCII 1;
- caracterul b de cod ASCII 98;
- caracterul NUL de cod ASCII 0.
Daca in locul sirului de mai sus se doreste un sir in care caracterul b sa fie inlocuit prin caracterul 3, atunci scrierea "a\13"
nu este corecta.
Intr-adevar, acest sir are in compunerea sa:
- caracterul a de cod ASCII 97;
- caracterul VT de cod ASCII 11;
- caracterul NUL de cod ASCII 0.
2. Sirul de caractere "\1751"
are in compunerea sa:
- caracterul } de cod ASCII 125 (175 in octal);
- caracterul 1 de cod ASCII 49;
- caracterul NUL de cod ASCII 0.
El poate fi scris mai simplu astfel: "}1"
3. Caracterul NUL nu poate fi utilizat decat la sfarsitul unui sir de caractere. Aceasta, deoarece un sir de caractere totdeauna se termina la aparitia caracterului NUL.