Sunteți pe pagina 1din 4

SIRURI 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
A are codul 65
0 are codul 48

Functii de prelucrare a sirurilor de caractere


a. incluse in <string.h>
1

Nr. Crt.

Numele functiei
strlen (s);

strcpy (s1, s2);

Rolul functiei
Determina lungimea
sirului
Copie sirul s2 in s1
Copie in sirul s1 primele
nr caractere din s2

Exemplu
strlen(siruri)=6

Transforma litere mici ale


lui s in litere mari, restul
caracterelor ramanand
neschimbate
Transforma litere mari in
litere mici restul
caracterelor ramanand
neschimbate
Compara s1 cu s2 din
punct de vedere alfabetic.
Rezultatul comparrii

strupr(IoniCA34)
; IONICA34

char
s2[]=exemplu,
s1[10], s3[10];
strcpy(s1,s2); ->
strncpy(s1,s2,nr);
s1=exemplu
strncpy(s3, s2,
3); -> s3=exe
strcat(s1,s2);
Adauga la sfarsitul lui s1 char
s2[]=exemplu,
sirul s2
Adauga la sfarsitul lui s1 s1[]=bun,
primele nr caractere din s2 s3[10];
strcat(s1,s2);
->s1=bunexemplu
strncat(s1,s2,nr);
strncat(s1,s2,1);
->s1=bune

strupr(s);

strlwr(s);

strcmp(s1,s2);

strupr(IoniCA34)
; ionica34

Strcmp(Nicu,
Andrei)>0
Strcmp(Ion,Ion

stricmp(s1,s2);

strrev(s);

strchr(s,c);

strrchr(s,c);

10

strstr(s1,s2);

11

strrstr(s1,s2);

este : >0 daca s1>s2; =0 )=0


daca s1=s2; <0 daca s1<s2 Strcmp(nicu,Nic
u)>0
Compara s1 cu s2 fara a Strcmp(nicu,Nic
face distinctie intre litere u)=0
mari si mici
char s[]=acasa;
Inverseaza sirul s
strrev(s);
s=asaca
Determina adresa primei Char
aparitii a caracterului c in s[]=abracadabra,
sirul s. Daca nu se afla c inc=b,s1[]=br;
s atunci rezultatul este 0 Cout<<strchr(s,c);
bracadabra
(pointerul NULL)
Determina adresa ultimei Cout<<strrchr(s,c)
aparitii a caracterului c in ; bra
sirul s. Daca nu se afla c inCout<<strstr(s,s1)
s atunci rezultatul este 0 ; bracadabra
Cout<<strrstr(s,s1
(pointerul NULL)
); bra
Determina adresa de
inceput a primei aparitii a Cout<<strchr(s,x
sirului s2 in sirul s1. Daca );0
nu se afla s2 in s1 atunci
rezultatul este 0 (pointerul Obs: verificarea
daca un character
NULL)
c este vocala:
Determina adresa de
inceput a ultimei aparitii a
sirului s2 in sirul s1. Daca if(strchr(aeiouAE
nu se afla s2 in s1 atunci IOU,c)!=0)
rezultatul este 0 (pointerul ..
NULL)
obs: afisarea
pozitiei pe care
se afla un
character intr-un
sir :
cout<<strchr(s,c)s;
(analog la restul
functiilor de
cautare)

12

strtok(s1,s2);

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

Inlocuieste separatorul
prin caracterul nul si
Prelucrarea entitatilor
furnizeaza ca rezultat un dintr-un sir:
pointer catre primul
caracter al primei entitati p=strtok(s,sep);
(extrage cuvinte dintr-un while(p!=0)
text, in care cuvintele sunt {
separate prin caractere din //prelucram p
p=strtok(0,
s2, cu rol de separatori)
sep);
}

Nr. Crt.
13

Numele functiei
x=atoi (s)

Rolul functiei

Exemplu
x=atoi(123);
Converteste sirul s intr-o
x=123
variabila de tip int. Daca x=atoi(1a23);
x=0
sirul contine si alfel de
caractere decat cifre,
rezultatul conversiei e 0
(conversia esueaza)

14

x=atof(s)

x=atof(123.45);
x=123.45
variabila de tip float. Daca x=atoi(1a23.cd);
Converteste sirul s intr-o
sirul contine si alfel de

x=0

caractere decat cifre,


rezultatul conversiei e 0
(conversia esueaza)
15

x=atol(s)

x=atol(123456789
); x=123456789
variabila de tip long. Daca x=atol(1a23575986
);
sirul contine si alfel de
Converteste sirul s intr-o

caractere decat cifre,

x=0

rezultatul conversiei e 0
(conversia esueaza)
16

x=atold(s)

Converteste sirul s intr-o


variabila de tip long

x=atof(123.45);
x=123.45
x=atoi(1a23.cd);

double. Daca sirul contine x=0


si alfel de caractere decat
cifre, rezultatul conversiei
e 0 (conversia esueaza)
17

itoa(nr, sir, baza)

Converteste un numar nr itoa(123,s,10);


de tip int scris in baza

s=

baza intr-un sir de

123

caractere (baza e de obicei


10)
18

ltoa(nr, sir, baza)

Converteste un numar nr
de tip long scris in baza
baza intr-un sir de
caractere (baza e de obicei
10)

19

ultoa(nr, sir, baza)

Converteste un numar nr

de tip unsigned long scris


in baza baza intr-un sir
de caractere (baza e de
obicei 10)