Sunteți pe pagina 1din 7

Funcii asupra caracterelor/ irurilor de caractere

1. Lungimea unui ir unsigned int strlen(char *sir); Efect: returneaz numrul de caractere al unui ir de caractere, fr a lua n considerare caracterul nul de la sfritul irului Exemplu: #include<iostream> #include<cstring> using namespace std; void main() { char a[256]; cout<<dati sirul a=;cin.get(a,256); cout<<sirul are <<strlen(a)<< caractere; } 2. Operaia de copiere char *strcpy(char *dest,char *sursa); Efect: copiaz irul de la adresa sursa la adresa destinaie. Copierea se termin la ntlnirea caracterului nul. Funcia returneaz adresa irului destinaie. Simuleaz operaia de atribuire a=b. Exemplu: #include<iostream> #include<cstring> using namespace std; void main() { char a[100]=crocodil,b[100]=hipopotam; strcpy(a,b); cout<<sirul a: <<a<<endl; //hipopotam cout<<sirul b: <<b<<endl; //hipopotam } 3. Copierea primelor n caractere char *strncpy(char *dest,char *sursa,unsigned int n); Efect: copiaz primii n octei din irul de la adresa surs la adresa destinaie, fr a aduga caracterul nul. Funcia returneaz adresa irului destinaie. Sirul surs rmne nemodificat. Exemplu: #include<iostream> #include<cstring> using namespace std; void main() { char a[100]=crocodil,b[100]=hipopotam; strncpy(a,b,4); cout<<sirul a: <<a<<endl; //hipo cout<<sirul b: <<b<<endl; //hipopotam }

Funcii asupra caracterelor/ irurilor de caractere


4. Operaia de concatenare (adugare) char *strcat(char *dest,char *sursa); Efect: adaug irului de la adresa destinaie, naintea caracterului nul irul de la adresa surs . irul de la adresa surs rmne nemodificat. Operaia se numete concatenare. La adresa destinaie vom avea irul destinaie urmat de irul surs. irul destinaie are lungimea egal cu suma lungimilor irurilor. Exemplu: #include<iostream> #include<cstring> using namespace std; void main() { char a[100]=mama ,b[100]=merge; strcat(a,b); cout<<sirul a: <<a<<endl; //mama merge cout<<sirul b: <<b<<endl; //merge } 5. Concatenarea primelor n caractere char *strncat(char *dest, char *sursa, unsigned int n); Efect: adaug irului de la adresa destinaie, naintea caracterului nul, primii n octei ai irului de la adresa surs. irul de la adresa surs rmne nemodificat. Funcia returneaz adresa de nceput a irului destinaie. Exemplu: #include<iostream> #include<cstring> using namespace std; void main() { char a[100]=mama ,b[100]=merge; strncat(a,b,3); cout<<sirul a: <<a<<endl; //mama mer cout<<sirul b: <<b<<endl; //merge } 6. Operaia de cutare a unui caracter de la stnga la dreapta char *strchr(char *sir, int car); 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: #include<iostream> #include<cstring> using namespace std; void main() { char a[100]=crocodil; cout<<strchr(a,o); //ocodil } 2

Funcii asupra caracterelor/ irurilor de caractere


7. Operaia de cutare a unui caracter de la dreapta spre stnga 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: #include<iostream> #include<cstring> using namespace std; void main() { char a[100]=crocodil; cout<<strrchr(a,o); //odil } 8. Identificarea unui subir 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: #include<iostream> #include<cstring> void main() { char a[100],b[100],*p; cin.getlinegets(a,100); cin.getline(b,100); p=strstr(a,b); if (p) cout<<este subsir si incepe de la indicele <<p-a; else cout<<nu este subsir; } 9. Analiza sintactic 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 entii i dup es este adugat caracterul nul. Cnd irul iniial nu mai conine entiti, intoarce adresa nul. Exemplu: #include<iostream> #include<cstring> using namespace std; void main() { char a[100],b[4]=, ;.,*p; cin.get(a,100); p=strtok(a,b); while (p) { cout<<p<<endl; p=strtok(NULL,b); }} 3

Funcii asupra caracterelor/ irurilor de caractere


10. Compararea a dou iruri 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: #include<iostream> #include<cstring> using namespace std; void main() { char a[100],b[100]; cin.get(a,100); cin.get(b,100); int k=strcmp(a,b); if (k>0) printf(a>b); else if (k==0) printf(a=b); else printf(a<b); } 11. Compararea fonetic a irurilor int stricmp(char *sir1,char *sir2); Efect: are acelai efect ca i strcmp dar nu face diferen ntre literele mari i literele mici. 12. Transformarea n litere mari a unui ir char *strupr(char *s) Efect: transform un ir de caractere din litere mici n litere mari. Restul caracterelor rmn nemodificate. Exemplu: #include<iostream> #include<cstring> void main() { char a[100]=1 crocodil; cout<<strupr(a); //1 CROCODIL } 13. Trasnformarea n litere mici a unui ir char *strlwr(char *s) Efect: transform un ir de caractere din litere mari n litere mici. Restul caracterelor rmn nemodificate. Exemplu: #include<iostream> #include<cstring> unsing namespace std; void main() { char a[100]=1 CROCODIL; cout<<strupr(a); //1 crocodil } 4

Funcii asupra caracterelor/ irurilor de caractere


Conversie dintr-un ir ntr-un numr 14. Conversia ir ntreg int int atoi(char *s) Efect: transform un ir de carcatere ntr-un ntreg (int). Este inclus n biblioteca <cstdlib>. Exemplu: #include<iostream> #include<cstdlib> using namespace std; void main() { int n; char *s=1234.56; n=atoi(s); cout<<n; // va afisa 1234 } 15. Conversia ir ntreg long long atol(char *s) Efect: transform un ir de carcatere ntr-un ntreg (long). Este inclus n biblioteca <cstdlib>. 16. Conversia ir ntreg long double atof(char *s) Efect: transform un ir de carcatere ntr-un numr real. Este inclus n biblioteca <cstdlib>. Exemplu: #include<iostream> #include<cstdlib> using namespace std; void main() { float n; char *s=-4521234.56; n=atof(s); cout<<n; // va afisa -4521234.56 } Conversie dintr-un numr ntr-un ir de caractere 17. Conversie ntreg int ir char *itoa(int val, char *sir, int baza) Efect: transform un numar ntreg (int) ntr-un ir de caractere. Baza reprezint baza in care este scris noul numr. Este inclus n biblioteca <cstdlib>. Exemplu: #include<iostream> #include<cstdlib> using namespace std; void main() { int n=12345; char s[20]; itoa(n,s,10); cout<<s // va afisa sirul 12345} 5

Funcii asupra caracterelor/ irurilor de caractere


18. Conversie ntreg long ir char *ltoa(long val, char *sir, int baza) Efect: transform un numar ntreg (long) ntr-un ir de caractere. 19. Conversie ntreg unsigned long ir char *ultoa(unsigned long val, char *sir, int baza) Efect: transform un numar ntreg (unsigned long) ntr-un ir de caractere.

Funcii care lucreaz cu caractere


Sunt incluse in biblioteca <cctype>. Testeaz dac un caracter primit ca parametru ndeplinete o condiie. Returneaz 0 dac acel caracter nu ndeplinete condiia i o valoare diferit de 0 dac o ndeplinete. 20. Testare liter sau cifr int isalnum(int c); Efect:testeaz dac un caracter este liter sau cifr Exemplu: #include<iostream> #include<cctype> void main() { char s=y; cout<<isalnum(s); // va afisa o valore diferita de 0 } 21. Testare liter int isalpha(int c); Efect: testeaz dac un caracter este liter 22. Testare cifr int isdigit(int c); Efect: testeaz dac un caracter este cifr Exemplu: #include<iostream> #include<cctype> void main() { char s=y; cout<<isdigit(s); // va afisa 0 } 23. Testare liter mic int islower(int c); Efect: testeaz dac un caracter este liter mic 24. Testare litera mare int isupper(int c); Efect: testeaz dac un caracter este liter mare 25. Testare spaiu int isspace(int c); Efect: testeaz dac un caracter este spaiu 26. Testare cifr n baza 16 int isxdigit(int c); Efect: testeaz dac un caracter este cifr n baza 16 6

Funcii asupra caracterelor/ irurilor de caractere


Exemplu: #include<iostream> #include<cctype> using namespace std; void main() { char s=d; cout<<isxdigit(s); // va afisa o valore diferita de 0, deoarece d este o cifra in baza 16 } 27. Transformarea litera mic litera mare int toupper(int c); Efect: transform un caracter care este litera mic n liter mare Exemplu: #include<iostream> #include<cctype> void main() { char s=y; cout<<toupper(s); // va afisa Y } 28. Transformarea litera mare litera mic int tolower(int c); Efect: transform un caracter care este litera mare n liter mic Exemplu: #include<iostream> #include<cctype> void main() { char s=Y; cout<<tolower(s); // va afisa y }

S-ar putea să vă placă și