Sunteți pe pagina 1din 5

Funcii care lucreaz cu iruri de caractere

1. Incluse in biblioteca <string>


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:
char a[100]=mama;
cout<<sirul are <<strlen(a)<< caractere; //va afisa 4

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:
char a[100]=crocodil,b[100]=hipopotam;
strcpy(a,b);
cout<<sirul a: <<a<<endl; //hipopotam
cout<<sirul b: <<b<<endl; //hipopotam

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:
char a[100]=crocodil,b[100]=hipopotam;
strncpy(a,b,4);
cout<<sirul a: <<a<<endl; //hipo
cout<<sirul b: <<b<<endl; //hipopotam

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:
char a[100]=mama,b[100]=merge;
strcat(a,b);
cout<<sirul a: <<a<<endl; //mamamerge
cout<<sirul b: <<b<<endl; //merge

char *strncat(char *dest,char *sursa, unsigned int n);


Efect: adaug irului de la adresa destinaie, naintea caracterului nul primii n octei ai irul de la adresa surs.
irul de la adresa surs rmne nemodificat. Funcia returneaz adresa de nceput a irului destinaie.
Exemplu:
char a[100]=mama ,b[100]=merge;
strncat(a,b,3);
cout<<sirul a: <<a<<endl; //mama mer
cout<<sirul b: <<b<<endl; //merge

char *strchr(char *sir,int car);

1
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
int stricmp(char *sir1,char *sir2);
Efect: are acelai efect ca i strcmp dar nu face diferen ntre literele mari i literele mici.
Exemplu:
char b[20]= ana, c[20]= Ana;
cout<<stricmp(b,c); //==0

int strncmp(char *sir1,char *sir2,int n);


Efect: are acelai efect ca i strcmp dar compara doar primele n caractere din cele doua siruri
Exemplu:
char b[20]= adriana, c[20]= adina;
cout<<strncmp(b,c,2); //==0

int strncmpi(char *sir1,char *sir2,int n);


Efect: are acelai efect ca i strncmp dar nu face diferen ntre literele mari i literele mici.
Exemplu:
char b[20]= adriana, c[20]= ADina;
cout<<strncmpi(b,c,2); //==0

char *strupr(char *s)


Efect: transform un ir de caractere din litere mici n litere mari. Restul caracterelor rmn nemodificate.
Exemplu:
char a[100]=1 crocodil;
cout<<strupr(a); //1 CROCODIL

char *strlwr(char *s)


Efect: transform un ir de caractere din litere mari n litere mici. Restul caracterelor rmn nemodificate.
Exemplu:
char a[100]=1 CROCODIL;
cout<<strupr(a); //1 crocodil

3
2. Incluse in biblioteca <stdlib.h>
int atoi(char *s)
Efect: transform un ir de carcatere ntr-un ntreg (int).
Exemplu:
int n;
char *s=1234.56;
n=atoi(s);
cout<<n; // va afisa 1234

long atol(char *s)


Efect: transform un ir de carcatere ntr-un ntreg (long).

double atof(char *s)


Efect: transform un ir de carcatere ntr-un numr real.
Exemplu:
float n;
char *s=-4521234.56;
n=atof(s);
cout<<n; // va afisa -4521234.56

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.
Exemplu:
int n=12345;
char s[20];
itoa(n,s,10);
cout<<s // va afisa sirul 12345

char *ltoa(long val, char *sir, int baza)


Efect: transform un numar ntreg (long) ntr-un ir de caractere.

char *ultoa(unsigned long val, char *sir, int baza)


Efect: transform un numar ntreg (unsigned long) ntr-un ir de caractere.

4
3. Funcii care lucreaz cu caractere
Sunt incluse in biblioteca <ctype.h>. Testeaz dac un cracter primit ca parametru ndeplinete o condiie. Returneaz 0
dac acel caracter nu indeplinete condiia i valoare diferit de 0 dac o ndeplinete.

int isalnum(int c);


Efect:testeaz dac un caracter este liter sau cifr
Exemplu:
char s=y;
cout<<isalnum(s); // va afisa o valore diferita de 0

int isalpha(int c);


Efect: testeaz dac un caracter este liter

int isdigit(int c);


Efect: testeaz dac un caracter este cifr
Exemplu:
char s=y;
cout<<isdigit(s); // va afisa 0

int islower(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 spaiu

int isxdigit(int c);


Efect: testeaz dac un caracter este cifr n baza 16
Exemplu:
char s=d;
cout<<isxdigit(s); // va afisa o valore diferita de 0, deoarece d este o cifra in baza 16

int toupper(int c);


Efect: transform un caracter care este litera mic n liter mare
Exemplu:
char s=y;
cout<<toupper(s); // va afisa Y

int tolower(int c);


Efect: transform un caracter care este litera mare n liter mic
Exemplu:
char s=Y;
cout<<tolower(s); // va afisa y

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