Documente Academic
Documente Profesional
Documente Cultură
Functiile Pentru Siruri de Caractere
Functiile Pentru Siruri de Caractere
Efect: caut de la stnga la dreapta, caracterul car n irul de caractere sir. Dac este gsit, funcia ntoarce adresa
subirului care ncepe cu prima apariie a caracterului citit i se termin cu carcterul nul. Dac nu este gsit
intoarce o expresie de tip char* cu valoarea 0.
Exemplu:
char a[100]=crocodil;
cout<<strchr(a,o); //ocodil
char *strrchr(char *sir,int car);
Efect: caut de la dreapta la stnga, caracterul car n irul de caractere sir. Dac este gsit, funcia ntoarce adresa
subirului care ncepe cu ultima apariie a caracterului citit i se termin cu carcterul nul. Dac nu este gsit
intoarce o expresie de tip char* cu valoarea 0.
Exemplu:
char a[100]=crocodil;
cout<<strrchr(a,o); //odil
char *strstr(char *sir1,char *sir2);
Efect: identific dac irul sir2 este subir(caractere succesive) al irului sir1. dac este gsit, funcia
returneaz adresa sa de nceput n cadrul irului s1, altfel returneaz 0. Cutarea se face de la stnga la
dreapta. Dac sir2 apare de mai multe ori, returneaz adresa primei sale apariii.
Exemplu:
char a[100]=azi ele fac cafele,b[20]= ele;
cout<<strstr(a,b); //ele fac cafele
char *strtok(char *sir1,char *sir2);
Efect: separ irul sir1 n entiti delimitate de unul sau mai multe carctere din irul sir2 (acestea avnd rol de
separatori). Apelul funciei se face prima dat sub forma strtok(sir1,sir2) - funcia ntoarce adresa primului
caracter al primei entiti - i a doua oar sub forma strtok(NULL,sir2) i funcia ntoarce adresa primului
caracter al urmtoarei entiti i dup el este adugat caracterul nul. Cnd irul iniial nu mai conine entiti,
intoarce adresa nul.
Exemplu:
char a[100],sep[]=, ;.?!,*p;
cin.get(a,100);
p=strtok(a,sep);
while (p)
{ cout<<p<<endl;
p=strtok(NULL,sep);
int strcmp(char *sir1,char *sir2);
Efect: compar cele dou iruri de caractere. Valoarea returnat este:
<0 dac sir1<sir2
=0 dac sir1=sir2
>0 dac sir1>sir2
Funcia face distincie ntre literele mari si literele mici. Compararea irurilor se realizeaz comparnd de
la stnga la dreapta caracter cu caracter. Un ir este mai mic dact altul dac figureaz n dicionar inaintea lui.
Exemplu:
char a[20]=adriana,b[20]= ana, c[20]= Ana;
cout<<strcmp(a,b); //<0 deoarece a=a si d<n => adriana< ana
cout<<strcmp(a,c); //>0 deoarece a>A
cout<<strcmp(b,c); //>0 deoarece a>A
2