Sunteți pe pagina 1din 1

Functii cu siruri de caractere

1. strlen(s) este egal cu lungimea sirului


pentru: char s1[]=abcd; cout<<strlen(s) ; // va afisa: 4
2. strcpy( s1,s2) copiaza sirul s2 la adresa s1 (inclusiv NULL)
pentru: char s1[]=abcdef, s2[]=baba;
strcpy(s1,s2);
cout<<s1 ; //va afisa: baba
strncpy( s1,s2,n) copiaza primele n caractere din sirul s2 la adresa s1(atentie nu mai am NULL la sfarsit)
3. strcat (s1,s2) adauga la s1 sirul s2 (concatenare)
pentru: char s1[]=mama, s2[]= si tata;
strcat (s1,s2);
cout<<s1 ; // va afisa: mama si tata
obs : daca vreau sa adaug ceva unui sir care initial este gol :
char s1[20]= ; // se initializeaza cu NULL prin tastarea a doua ghilimele (fara spatiu intre ele)
strcat (s1,lala);
// sau se poate face s1[0]=NULL ;
cout<<s1 ; // va afisa: lala
strncat (s1,s2, n) adauga la s1 primele n caractere din sirul s2
4. strcmp(s1,s2) compara s1 cu s2 si rezulta o valoare :
<0 daca s1<s2 ( s1 este in dictionar inaintea lui s2) : s1[]= mama, s2[]=tata;
=0 daca s1<s2 ( au acelasi nr de caractere si aceleasi caractere)
>0 daca s1>s2 ( s1 este in dictionar dupa s2) : s1[]= bunicul, s2[]=bunica ;
Obs: functia face distinctie intre literele mari si mici
strcimp(s1,s2) compara s1 cu s2 fara sa faca distinctie intre literele mari si mici
5. strchr( s, c) cauta caracterul memorat in variabila c in sirul s si returneaza adresa subsirului care
incepe cu caracerul gasit. Daca nu gaseste caracterul, returneaza 0
char s[]=ana are mere si pere;
cout<< strchr (s,m); //va afisa: mere si pere
sau : char s[]=ana are mere si pere, c;
cin>>c; // daca se citeste p
cout<< strchr (s, c); //va afisa: pere
6. strstr(s1, s2) returneaza adresa de inceput a subsirului s2 din s1 (daca exista, daca nu, returneaza 0)
char s1[]=ana are mere si pere, s2[]=are;
cout<< strstr ( s1, s2) ; // va afisa: are mere si pere
7. strtok(s,sep) apelata de mai multe ori returneaza adresele cuvintelor din s separate de separatorii din sirul
sep. La fiecare apel, strtok pune NULL in locul separatorului gasit (atentie sirul initial (s) -se strica!!)
char s[]=ana are mere, pere si banane, sep[]= , , *p; //sirul sep contine un spatiu si o virgula
p=strtok(s,sep); // se pune NULL dupa cuvantul ana si la adresa s ramane doar primul cuvant
cout<<s<< <<p ; // afiseaza: ana ana.
while (p)
// afiseaza cuvintele unul sub altul
{ cout<<p<<endl;
//afiseaza cuvantul de la adresa p
p=strtok ( NULL,sep); // p indica urmatorul cuvant care are NULL in fata si de aceea se apeleaza cu
// NULL in loc de s;
} // la sfarsit (dupa ultimul cuvant) p va fi NULL si while se opreste
8. strrev(s) modifica sirul si il inverseaza(in oglinda):char s[]=abcd; strrev(s); cout<<s;//se afis: dcba
9. strlwr(s) converteste toate caracterele mari din sir in litere mici iar strupr(s) in litere mari
( obs : pt modificare o litera mica in lit. mare se scade 32 : char c=a ; cout<<c-32 ; afiseaza A)
10. strpbrk(s1,s2) ; se opreste pe primul caracter din s1 care se gaseste in s2
ex : char *p ,s1[]= abcdefgrtanhy ,s2[]=ndht; p= strpbrk(s1,s2) ; cout<<p ;va afisa defgrtanhy
la un nou p= strpbrk(s1,s2) ; cout<<p ;va afisa tanhy (d si t se gasesc in s2)
11.strcspn (s1,s2) returneaza nr de caractere consecutive ale lui s1(incepand cu primul) care nu se afla in s2
strspn(s1,s2) returneaza nr de caractere consecutive ale lui s1(incepand cu primul) care se afla in s2
s1=abc745,s2=5472 , strcspn (s1,s2) returneaza 3 pt ca abc nu sunt in s2 si strspn(s1,s2) da 0
s1=745cda, s2=5472,strcspn (s1,s2) returneaza 0 pt ca 7 este in s2 si strspn(s1,s2) da 3 pt 745 sunt in s2
atoi(s) returneaza o val intreaga reprezentand conversia sirului la intreg: n=atoi(72) ; n va fi 72
itoa (val,s,baza) returneaza adr. lui s reprezentand conversia lui val(intreg la sir itoa (72,s,10 ) ; s va fi 72

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