Sunteți pe pagina 1din 6

Funcii care lucreaz cu iruri de caractere

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.h> #include<string.h> void main() { char a !""#$ cout<<%dati sirul a&'$cin.get(a,!"")$ cout<<%sirul are '<<strlen(a)<<% caractere'$ ( char *strcpy(char *dest,char *sursa); Efect: 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&.. Exemplu: #include<iostream.h> #include<string.h> void main() { char a !""#&%crocodil',. !""#&%hi)o)otam'$ strc)/(a,.)$ cout<<%sirul a0 '<<a<<endl$ 11hi)o)otam cout<<%sirul .0 '<<.<<endl$ 11hi)o)otam ( char *strncpy(char *dest,char *sursa,unsigned int n); Efect0 co)iaz )rimii n octe*i din irul de la adresa surs la adresa destina*ie, fr a aduga caracterul nul. ,unc*ia returneaz adresa irului destina*ie. -irul surs rmne nemodificat. Exemplu0 #include<iostream.h> #include<string.h> void main() { char a !""#&%crocodil',. !""#&%hi)o)otam'$ strnc)/(a,.,2)$ cout<<%sirul a0 '<<a<<endl$ 11hi)o cout<<%sirul .0 '<<.<<endl$ 11hi)o)otam ( char *strcat(char *dest,char *sursa); Efect0 adaug irului de la adresa destina*ie, naintea caracterului nul irul de la adresa surs. 3irul de la adresa surs rmne nemodificat. 4)era*ia se numete concatenare. 5a adresa destina*ie vom avea irul destina*ie urmat de irul surs. 3irul destina*ie are lungimea egal cu suma lungimilor irurilor. Exemplu0 #include<iostream.h> #include<string.h> void main() { char a !""#&%mama ',. !""#&%merge'$ strcat(a,.)$ !

cout<<%sirul a0 '<<a<<endl$ 11mama merge cout<<%sirul .0 '<<.<<endl$ 11merge ( char *strncat(char *dest,char *sursa, unsigned int n); Efect0 adaug irului de la adresa destina*ie, naintea caracterului nul )rimii n octe*i ai irul de la adresa surs. 3irul de la adresa surs rmne nemodificat. ,unc*ia returneaz adresa de nce)ut a irului destina*ie. Exemplu0 #include<iostream.h> #include<string.h> void main() { char a !""#&%mama ',. !""#&%merge'$ strncat(a,.,6)$ cout<<%sirul a0 '<<a<<endl$ 11mama mer cout<<%sirul .0 '<<.<<endl$ 11merge ( char *strchr(char *sir,int car); Efect0 caut de la stnga la drea)ta, caracterul car n irul de caractere sir. 7ac este gsit, func*ia ntoarce adresa su.irului care nce)e cu )rima a)ari*ie a caracterului citit i se termin cu carcterul nul. 7ac nu este gsit intoarce o e8)resie de ti) char9 cu valoarea ". Exemplu0 #include<iostream.h> #include<string.h> void main() { char a !""#&%crocodil'$ cout<<strchr(a,:o:)$ 11ocodil ( char *strrchr(char *sir,int car); Efect0 caut de la drea)ta la stnga, caracterul car n irul de caractere sir. 7ac este gsit, func*ia ntoarce adresa su.irului care nce)e cu ultima a)ari*ie a caracterului citit i se termin cu carcterul nul. 7ac nu este gsit intoarce o e8)resie de ti) char9 cu valoarea ". Exemplu0 #include<iostream.h> #include<string.h> void main() { char a !""#&%crocodil'$ cout<<strrchr(a,:o:)$ 11odil ( char *strstr(char *sir ,char *sir!); Efect: identific dac irul sir; este su.ir(caractere succesive) al irului sir!. dac este gsit, func*ia returneaz adresa sa de nce)ut n cadrul irului s!, altfel returneaz ". +utarea se face de la stnga la drea)ta. 7ac sir; a)are de mai multe ori, returneaz adresa )rimei sale a)ari*ii. Exemplu: #include<string.h> #include<stdio.h> void main() ;

{ char a !""#,. !"#,9)$ gets(a)$ gets(.)$ )&strstr(a,.)$ if ()) )rintf(%este su.sir si ince)e de la indicele <d',)=a)$ else )rintf(%nu este su.sir')$ ( char *strt"#(char *sir ,char *sir!); Efect: se)ar irul sir! n entit*i delimitate de unul sau mai multe carctere din irul sir; (acestea avnd rol de se)aratori).>)elul func*iei se face )rima dat su. forma strto?(sir!,sir;) = func*ia ntoarce adresa )rimului caracter al )rimei entit*i = i a doua oar su. forma strto?(@A55,sir;) i func*ia ntoarce adresa )rimului caracter al urmtoarei enti*i i du) es este adugat caracterul nul. +nd irul ini*ial nu mai con*ine entit*i, intoarce adresa nul. Exemplu0 #include<string.h> #include<iostream.h> void main() { char a !""#,. 2#&%, $.',9)$ cin.get(a,!"")$ )&strto?(a,.)$ Bhile ()) { cout<<)<<endl$ )&strto?(@A55,.)$ ( ( int strcmp(char *sir ,char *sir!); Efect: com)ar cele dou iruri de caractere. Caloarea returnat este0 <" dac sir!<sir; &" dac sir!&sir; >" dac sir!>sir; ,unc*ia face distinc*ie ntre literele mari si literele mici. +om)ararea irurilor se realizeaz com)arnd de la stnga la drea)ta caracter cu caracter. An ir este mai mic dact altul dac figureaz n dic*ionar inaintea lui. Exemplu0 #include<string.h> #include<stdio.h> void main() { char a !""#,. !""#$ gets(a)$ gets(.)$ int ?&strcm)(a,.)$ if (?>") )rintf(%a>.')$ else if (?&&") )rintf(%a&.')$ else )rintf(%a<.')$ ( int stricmp(char *sir ,char *sir!); Efect0 are acelai efect ca i strcm) dar nu face diferen* ntre literele mari i literele mici.

char *strupr(char *s) Efect0 transform un ir de caractere din litere mici n litere mari. Destul caracterelor rmn nemodificate. Exemplu: #include<iostream.h> #include<string.h> void main() { char a !""#&%! crocodil'$ cout<<stru)r(a)$ 11! +D4+47E5 ( char *strl$r(char *s) Efect0 transform un ir de caractere din litere mari n litere mici. Destul caracterelor rmn nemodificate. Exemplu: #include<iostream.h> #include<string.h> void main() { char a !""#&%! +D4+47E5'$ cout<<stru)r(a)$ 11! crocodil ( int at"i(char *s) Efect0 transform un ir de carcatere ntr=un ntreg (int). Fste inclus n .i.lioteca <stdli..h>. Exemplu: #include<iostream.h> #include<stdli..h> void main() { int n$ char 9s&'!;62.GH'$ n&atoi(s)$ cout<<n$ 11 va afisa !;62 ( l"ng at"l(char *s) Efect0 transform un ir de carcatere ntr=un ntreg (long). Fste inclus n .i.lioteca <stdli..h>. d"u%le at"f(char *s) Efect0 transform un ir de carcatere ntr=un numr real. Fste inclus n .i.lioteca <stdli..h>. Exemplu: #include<iostream.h> #include<stdli..h> void main() { float n$ char 9s&'=2G;!;62.GH'$ n&atof(s)$ cout<<n$ 11 va afisa =2G;!;62.GH ( 2

char *it"a(int &al, char *sir, int %aza) Efect: transform un numar ntreg (int) ntr=un ir de caractere. Iaza re)rezint .aza in care este scris noul numr. Fste inclus n .i.lioteca <stdli..h>. Exemplu: #include<iostream.h> #include<stdli..h> void main() { int n&!;62G$ char s ;"#$ itoa(n,s,!")$ cout<<s 11 va afisa sirul %!;62G' ( char *lt"a(l"ng &al, char *sir, int %aza) Efect: transform un numar ntreg (long) ntr=un ir de caractere. char *ult"a(unsigned l"ng &al, char *sir, int %aza) Efect: transform un numar ntreg (unsigned long) ntr=un ir de caractere.

Funcii care lucreaz cu caractere


'unt incluse in %i%li"teca (ctype)h*) +esteaz dac un cracter primit ca parametru ,ndeplinete " c"ndiie) -eturneaz . dac acel caracter nu indeplinete c"ndiia i &al"are diferit de . dac " ,ndeplinete) int isalnum(int c); Efect:testeaz dac un caracter este liter sau cifr Exemplu: #include<iostream.h> #include<ct/)e.h> void main() { char s&:/:$ cout<<isalnum(s)$ 11 va afisa o valore diferita de " ( int isalpha(int c); Efect: testeaz dac un caracter este liter int isdigit(int c); Efect: testeaz dac un caracter este cifr Exemplu: #include<iostream.h> #include<ct/)e.h> void main() { char s&:/:$ cout<<isdigit(s)$ 11 va afisa " ( G

int isl"$er(int c); Efect: testeaz dac un caracter este liter mic int isupper(int c); Efect: testeaz dac un caracter este liter mare int isspace(int c); Efect: testeaz dac un caracter este s)a*iu int isxdigit(int c); Efect: testeaz dac un caracter este cifr n .aza !H Exemplu: #include<iostream.h> #include<ct/)e.h> void main() { char s&:d:$ cout<<is8digit(s)$ 11 va afisa o valore diferita de ", deoarece d este o cifra in .aza !H ( int t"upper(int c); Efect: transform un caracter care este litera mic n liter mare Exemplu: #include<iostream.h> #include<ct/)e.h> void main() { char s&:/:$ cout<<tou))er(s)$ 11 va afisa JK: ( int t"l"$er(int c); Efect: transform un caracter care este litera mare n liter mic Exemplu: #include<iostream.h> #include<ct/)e.h> void main() { char s&:K:$ cout<<toloBer(s)$ 11 va afisa J/: (

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