Sunteți pe pagina 1din 5

Funcii care lucreaz cu iruri de caractere

1. Incluse in biblioteca <string>


unsigned int strlen(char *sir); E ect! returneaz numrul de caractere al unui ir de caractere, fr a lua n considerare caracterul nul de la sfritul irului E"e#$lu! char a[100]=mama; cout<<sirul are <<strlen a!<< caractere; ""#a afisa $ char *strc$%(char *dest&char *sursa); E ect! co%iaz irul de la adresa sursa la adresa destina&ie' (o%ierea se termin la ntlnirea caracterului nul' )unc&ia returneaz adresa irului destina&ie' *imuleaz o%era&ia de atri+uire a=+' E"e#$lu! char a[100]=crocodil,+[100]=hi%o%otam; strc%, a,+!; cout<<sirul a- <<a<<endl; ""hi%o%otam cout<<sirul +- <<+<<endl; ""hi%o%otam char *strnc$%(char *dest&char *sursa&unsigned int n); E ect- co%iaz %rimii n octe&i din irul de la adresa surs la adresa destina&ie, fr a adu.a caracterul nul' )unc&ia returneaz adresa irului destina&ie' *irul surs rmne nemodificat' E"e#$luchar a[100]=crocodil,+[100]=hi%o%otam; strnc%, a,+,$!; cout<<sirul a- <<a<<endl; ""hi%o cout<<sirul +- <<+<<endl; ""hi%o%otam char *strcat(char *dest&char *sursa); E ect- adau. irului de la adresa destina&ie, naintea caracterului nul irul de la adresa surs' /irul de la adresa surs rmne nemodificat' 0%era&ia se numete concatenare' 1a adresa destina&ie #om a#ea irul destina&ie urmat de irul surs' /irul destina&ie are lun.imea e.al cu suma lun.imilor irurilor' E"e#$luchar a[100]=mama,+[100]=mer.e; strcat a,+!; cout<<sirul a- <<a<<endl; ""mamamer.e cout<<sirul +- <<+<<endl; ""mer.e char *strncat(char *dest&char *sursa& unsigned int n); E ect- adau. irului de la adresa destina&ie, naintea caracterului nul %rimii n octe&i ai irul de la adresa surs' /irul de la adresa surs rmne nemodificat' )unc&ia returneaz adresa de nce%ut a irului destina&ie' E"e#$luchar a[100]=mama ,+[100]=mer.e; strncat a,+,2!; cout<<sirul a- <<a<<endl; ""mama mer cout<<sirul +- <<+<<endl; ""mer.e char *strchr(char *sir&int car); 1

E ect- caut de la stn.a la drea%ta, caracterul car n irul de caractere sir' 3ac este .sit, func&ia ntoarce adresa su+irului care nce%e cu %rima a%ari&ie a caracterului citit i se termin cu carcterul nul' 3ac nu este .sit intoarce o e4%resie de ti% char5 cu #aloarea 0' E"e#$luchar a[100]=crocodil; cout<<strchr a,6o6!; ""ocodil char *strrchr(char *sir&int car); E ect- caut de la drea%ta la stn.a, caracterul car n irul de caractere sir' 3ac este .sit, func&ia ntoarce adresa su+irului care nce%e cu ultima a%ari&ie a caracterului citit i se termin cu carcterul nul' 3ac nu este .sit intoarce o e4%resie de ti% char5 cu #aloarea 0' E"e#$luchar a[100]=crocodil; cout<<strrchr a,6o6!; ""odil char *strstr(char *sir1&char *sir'); E ect! identific dac irul sir7 este su+ir caractere succesi#e! al irului sir1' dac este .sit, func&ia returneaz adresa sa de nce%ut n cadrul irului s1, altfel returneaz 0' (utarea se face de la stn.a la drea%ta' 3ac sir7 a%are de mai multe ori, returneaz adresa %rimei sale a%ari&ii' E"e#$lu! char a[100]=azi ele fac cafele,+[70]= ele; cout<<strstr a,+!; ""ele fac cafele char *strto((char *sir1&char *sir'); E ect! se%ar irul sir1 n entit&i delimitate de unul sau mai multe carctere din irul sir7 acestea a#nd rol de se%aratori!' 8%elul func&iei se face %rima dat su+ forma strto9 sir1,sir7! : func&ia ntoarce adresa %rimului caracter al %rimei entit&i : i a doua oar su+ forma strto9 ;<11,sir7! i func&ia ntoarce adresa %rimului caracter al urmtoarei entit&i i du% el este adu.at caracterul nul' (nd irul ini&ial nu mai con&ine entit&i, intoarce adresa nul' E"e#$luchar a[100],se%[]=, ;'=>,5%; cin'.et a,100!; $)strto((a&se$); ?hile %! @ cout<<%<<endl; $)strto((*+,,&se$); int strc#$(char *sir1&char *sir'); E ect! com%ar cele dou iruri de caractere' Aaloarea returnat este<0 dac sir1<sir7 =0 dac sir1=sir7 B0 dac sir1Bsir7 )unc&ia face distinc&ie ntre literele mari si literele mici' (om%ararea irurilor se realizeaz com%arnd de la stn.a la drea%ta caracter cu caracter' <n ir este mai mic dact altul dac fi.ureaz n dic&ionar inaintea lui' E"e#$luchar a[70]=adriana,+[70]= ana, c[70]= 8na; cout<<strcm% a,+!; ""<0 deoarece Ca6=6a6 si Cd6<6n6 =B adriana< ana cout<<strcm% a,c!; ""B0 deoarece Ca6B686 cout<<strcm% +,c!; ""B0 deoarece Ca6B686 7

int stric#$(char *sir1&char *sir'); E ect- are acelai efect ca i strcm% dar nu face diferen& ntre literele mari i literele mici' E"e#$luchar +[70]= ana, c[70]= 8na; cout<<stricm% +,c!; ""==0 int strnc#$(char *sir1&char *sir'&int n); E ect- are acelai efect ca i strcm% dar com%ara doar %rimele n caractere din cele doua siruri E"e#$luchar +[70]= adriana, c[70]= adina; cout<<strncm% +,c,7!; ""==0 int strnc#$i(char *sir1&char *sir'&int n); E ect- are acelai efect ca i strncm% dar nu face diferen& ntre literele mari i literele mici' E"e#$luchar +[70]= adriana, c[70]= 83ina; cout<<strncm%i +,c,7!; ""==0 char *stru$r(char *s) E ect- transform un ir de caractere din litere mici n litere mari' Destul caracterelor rmn nemodificate' E"e#$lu! char a[100]=1 crocodil; cout<<stru%r a!; ""1 (D0(03E1 char *strl-r(char *s) E ect- transform un ir de caractere din litere mari n litere mici' Destul caracterelor rmn nemodificate' E"e#$lu! char a[100]=1 (D0(03E1; cout<<stru%r a!; ""1 crocodil

'. Incluse in biblioteca <stdlib.h>


int atoi(char *s) E ect- transform un ir de carcatere ntr:un ntre. int!' E"e#$lu! int n; char 5s=172$'FG; n=atoi s!; cout<<n; "" #a afisa 172$ long atol(char *s) E ect- transform un ir de carcatere ntr:un ntre. lon.!' double ato (char *s) E ect- transform un ir de carcatere ntr:un numr real' E"e#$lu! float n; char 5s=:$F7172$'FG; n=atof s!; cout<<n; "" #a afisa :$F7172$'FG char *itoa(int .al& char *sir& int baza) E ect! transform un numar ntre. int! ntr:un ir de caractere' Haza re%rezint +aza in care este scris noul numr' E"e#$lu! int n=172$F; char s[70]; itoa n,s,10!; cout<<s "" #a afisa sirul 172$F char *ltoa(long .al& char *sir& int baza) E ect! transform un numar ntre. lon.! ntr:un ir de caractere' char *ultoa(unsigned long .al& char *sir& int baza) E ect! transform un numar ntre. unsi.ned lon.! ntr:un ir de caractere'

/. Funcii care lucreaz cu caractere


0unt incluse in biblioteca <ct%$e.h>. 1esteaz dac un cracter $ri#it ca $ara#etru 2nde$linete o condiie. 3eturneaz 4 dac acel caracter nu inde$linete condiia i .aloare di erit de 4 dac o 2nde$linete. int isalnu#(int c); E ect!testeaz dac un caracter este liter sau cifr E"e#$lu! char s=6,6; cout<<isalnum s!; "" #a afisa o #alore diferita de 0 int isal$ha(int c); E ect! testeaz dac un caracter este liter int isdigit(int c); E ect! testeaz dac un caracter este cifr E"e#$lu! char s=6,6; cout<<isdi.it s!; "" #a afisa 0 int islo-er(int c); E ect! testeaz dac un caracter este liter mic int isu$$er(int c); E ect! testeaz dac un caracter este liter mare int iss$ace(int c); E ect! testeaz dac un caracter este s%a&iu int is"digit(int c); E ect! testeaz dac un caracter este cifr n +aza 1G E"e#$lu! char s=6d6; cout<<is4di.it s!; "" #a afisa o #alore diferita de 0, deoarece d este o cifra in +aza 1G int tou$$er(int c); E ect! transform un caracter care este litera mic n liter mare E"e#$lu! char s=6,6; cout<<tou%%er s!; "" #a afisa CI6 int tolo-er(int c); E ect! transform un caracter care este litera mare n liter mic E"e#$lu! char s=6I6; cout<<tolo?er s!; "" #a afisa C,6