Sunteți pe pagina 1din 3

Functii de prelucrare a sirurilor de caractere

Declarare:
char sir[dim]; sau char *sir;
citire:
cin>>sir; (daca nu sunt spatii)
cin.get(sir,dim); (daca are spatii)
afisare:
cout<<sir;
prelucrare caractere:
for(i=0;i<strlen(s);i++)
//prel s[i]
Observatii:
litera+32=LITERA
cifra=’cifra’-48
a are codul 97 z are codul 122
A are codul 65 Z are codul 90
0 are codul 48 9 are codul 57

Functii de prelucrare a sirurilor de caractere


a. incluse in <cstring>

Nr. Numele functiei Rolul functiei Exemplu


Crt.
1 strlen (s); Determina lungimea strlen(“siruri”)=6
sirului
2 strcpy (s1, s2); Copie sirul s2 in s1 char s2[]=”exemplu”, s1[10], s3[10];
Copie in sirul s1 primele strcpy(s1,s2); -> s1=”exemplu”
2’ strncpy(s1,s2,nr);
nr caractere din s2 strncpy(s3, s2, 3); -> s3=”exe”
3 strcat(s1,s2); Adauga la sfarsitul lui s1 char s2[]=”exemplu”, s1[]=”bun”, s3[10];
sirul s2 strcat(s1,s2); ->s1=”bunexemplu”
Adauga la sfarsitul lui s1 strncat(s1,s2,1); ->s1=”bune”
3’ strncat(s1,s2,nr);
primele nr caractere din s2
Transforma litere mici ale strupr(“IoniCA34”); ”IONICA34”
lui s in litere mari, restul
4 strupr(s);
caracterelor ramanand
neschimbate
5 strlwr(s); Transforma litere mari in strupr(“IoniCA34”); ”ionica34”
litere mici restul
caracterelor ramanand
neschimbate
Compara s1 cu s2 din Strcmp(“Nicu”, “Andrei”)>0
punct de vedere alfabetic. Strcmp(“Ion”,”Ion”)=0
6 strcmp(s1,s2); Rezultatul comparării este Strcmp(“nicu”,”Nicu”)>0
: >0 daca s1>s2; =0 daca
s1=s2; <0 daca s1<s2
Functii de prelucrare a sirurilor de caractere

Nr. Numele functiei Rolul functiei Exemplu


Crt.
Compara s1 cu s2 fara a Strcmp(“nicu”,”Nicu”)=0
6’ stricmp(s1,s2); face distinctie intre litere
mari si mici
7 strrev(s); Inverseaza sirul s char s[]=”acasa”;
strrev(s); s=”asaca”
Determina adresa primei Char s[]=”abracadabra”, c=’b’,s1[]=”br”;
aparitii a caracterului c in Cout<<strchr(s,c); ”bracadabra”
8 strchr(s,c); sirul s. Daca nu se afla c in Cout<<strrchr(s,c); ”bra”
s atunci rezultatul este 0 Cout<<strstr(s,s1); ”bracadabra”
(pointerul NULL) Cout<<strrstr(s,s1); ”bra”
Determina adresa ultimei Cout<<strchr(s,’x’);0
aparitii a caracterului c in
9 strrchr(s,c); sirul s. Daca nu se afla c in Obs: verificarea daca un character c
s atunci rezultatul este 0 este vocala:
(pointerul NULL)
Determina adresa de if(strchr(“aeiouAEIOU”,c)!=0)
inceput a primei aparitii a ……………..
sirului s2 in sirul s1. Daca
10 strstr(s1,s2);
nu se afla s2 in s1 atunci obs: afisarea pozitiei pe care se afla un
rezultatul este 0 (pointerul character intr-un sir :
NULL)
Determina adresa de cout<<strchr(s,c)-s;
inceput a ultimei aparitii a
sirului s2 in sirul s1. Daca (analog la restul functiilor de cautare)
11 strrstr(s1,s2);
nu se afla s2 in s1 atunci
rezultatul este 0 (pointerul
NULL)
Inlocuieste separatorul
prin caracterul nul si Prelucrarea entitatilor dintr-un sir:
furnizeaza ca rezultat un
pointer catre primul p=strtok(s,sep);
12 strtok(s1,s2); caracter al primei entitati while(p!=0)
(extrage cuvinte dintr-un {
text, in care cuvintele sunt //prelucram p
separate prin caractere din p=strtok(0, sep);
s2, cu rol de separatori) }
Functii de prelucrare a sirurilor de caractere

b. incluse in <stdlib.h> (functii de conversie)

Nr. Numele Rolul functiei Exemplu


Crt. functiei
13 x=atoi (s) Converteste sirul s intr-o variabila de x=atoi(“123”);  x=123
tip int. Daca sirul contine si alfel de x=atoi(“1a23);
caractere decat cifre, rezultatul x=0
conversiei e 0 (conversia esueaza)
14 x=atof(s) Converteste sirul s intr-o variabila de x=atof(“123.45”);  x=123.45
tip float. Daca sirul contine si alfel de x=atoi(“1a23.cd);
caractere decat cifre, rezultatul x=0
conversiei e 0 (conversia esueaza)
15 x=atol(s) Converteste sirul s intr-o variabila de x=atol(“123456789”); 
tip long. Daca sirul contine si alfel de x=123456789
caractere decat cifre, rezultatul x=atol(“1a23575986);
conversiei e 0 (conversia esueaza) x=0
16 x=atold(s) Converteste sirul s intr-o variabila de x=atof(“123.45”);  x=123.45
tip long double. Daca sirul contine si x=atoi(“1a23.cd);
alfel de caractere decat cifre, rezultatul x=0
conversiei e 0 (conversia esueaza)
17 itoa(nr, sir, Converteste un numar nr de tip int scris itoa(123,s,10); s=
baza) in baza “baza” intr-un sir de caractere ”123”
(baza e de obicei 10)
18 ltoa(nr, sir, Converteste un numar nr de tip long
baza) scris in baza “baza” intr-un sir de
caractere (baza e de obicei 10)
19 ultoa(nr, Converteste un numar nr de tip
sir, baza) unsigned long scris in baza “baza” intr-
un sir de caractere (baza e de obicei 10)

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