8.6. Functii standard utilizate la prelucrarea sirurilor de caractere
2019/03/11 in Programare in C
Biblioteca standard contine o serie de functii care permit operatii cu siruri de caractere. Majoritatea acestor functii au prototipul in fisierul string.h. Mai jos sunt prezentate functiile mai importanate din aceasta clasa.
Un sir de caractere se pastreaza intr-o zona de memorie organizata ca tablou unidimensional de tip char. Fiecare caracter se pastreaza pe cate un octet prin codul sau numeric.
Cel mai frecvent cod utilizat in acest scop este codul ASCII.
Dupa ultimul caracter al sirului se pastreaza caracterul NUL ('\0').
Pentru a opera un sir de caractere se poate utiliza numele tabloului ale carui elemente au ca valori codurile caracterelor sirului respectiv.
Spunem despre acest nume ca este un pointer constant spre sirul respectiv.
Evident, se pot utilza si pointeri variabili spre un sir de caractere.
Exemplu:
char tab[] = "Acesta este un sir";
Sirul de caractere "Acesta este un sir" se pastreaza in zona de memorie alocata lui tab. tab are ca valoare adresa de inceput a zonei de memorie in care se pastreaza caracterele sirului.
tab | adresa caracterului A |
tab+1 | adresa caracterului c |
tab+2 | adresa caracterului e |
etc. |
tab[0] | codul ASCII al caracterului A |
tab[1] | codul ASCII al caracterului c |
etc. |
*tab | codul ASCII al caracterului A |
*(tab+1) | codul ASCII al caracterului c |
etc. |
Un efect similar se obtine cu ajutorul declaratiei:
char *const p = "Acesta este un sir";
Sirul de caractere se pastreaza intr-o zona de memorie rezervata pentru a pastra siruri de caractere.
Adresa de inceput a zonei in care se pastreaza sirul de fata se atribuie pointerului p. Acesta, ca si tab, este un pointer constant.
p | adresa caracterului A |
p+1 | adresa caracterului c |
p+2 | adresa caracterului e |
etc. |
p[0] sau *p | codul ASCII al caracterului A |
p[1] sau *(p+1) | codul ASCII al caracterului c |
etc. |
In legatura cu sirurile de caractere se au in vedere operatii de urmatorul fel:
- calculul lungimii unui sir de caractere;
- copierea sirurilor de caractere;
- concatenerea sirurilor de caractere;
- compararea sirurilor de caractere;
Functiile standard prin care se realizeaza aceste operatii au fiecare un nume care incepe cu prefixul str (prescurtare de la string).