Sunteți pe pagina 1din 2

Tipul sir de caractere este un tip format dintr-o multime ordonata de

caractere ,fiecare caracter fiind identificat prin pozitia sa in cadrul sirului.


Caracterele dintr-un sir sunt numerotate prin codurile lor ASCII.
O variabila de tip sir de caractere se declara astfel: char nume_v[dimensiune];
Prin dimensiune se intelege dimensiunea fizica a sirului de caractere adica spatiul
de memorie alocat pentru o variabila de tip sir de caractere pe toata durata
executiei programului.Orice sir de caractere are ca delimitator de sfarsit de sir
caracterul special ‘\0’.Pt acest caracter calculatorul rezerva o pozitie in cadrul
sirului(prima pozitie nefolosita).Astfel un sir de caractere nu poate sa contina mai
mult de dimensiune-1 carctere.
Dimensiunea fizica a unui sir de caractere este diferita de dimensiunea logica a
sirului de caractere.
Variabilele de tip sir de caractere pot fi initializate oriunde in program sau in
momentul declararii variabilelor.
Obs:Dimensiunea fizica a unui sir de caractere poate fi de maxim 256 de caractere
sau aceasta dimensiune poate sa lipseasca in situatia in care variabila este si
initializata.
Citirea sirurilor de caractere se face cu ajutorul functiei cin.get();
Sintaxa:cin.get(nume_var,dim,ch);
Caracterul ch ,ce reprezinta al treilea parametru, poate fi prezent sau nu.Acesta
poate fi chiar delimitatorul de sfarsit de sir sau alt delimitator.
Obs:sirurile de carctere pot fi citite si caracter su caracter,astfel:
cout<<”n=”;cin>>n
for(i=0;i<ni++)
{cout<<”s[“<<i<<”[=”;
cin>>s[i];
}
s[n]=’\0’;

Scrierea/afisarea sirurilor de caractere:


a)Afisarea caracter cu caracter
Strlen(s) returneaza dimensiunea logica a sirului s dat ca parametru.
b)Afisarea globala(cout<<s<<endl;)
Functii predefinite sirurilor de caractere.
1.strlen(s)
2.strcpy(Sd,Ss) are ca efect copierea carcterelor din sirul sursa Ss in sirul
destinatie Sd.
3.strncpy(Sd,Ss,n) realizeaza copierea primelor n caractere din sirul Ss in sirul Sd.
Daca in sirul sursa(Ss) nu sunt disponibile n caractere vor fi copiate in Sd cele
disponbile.
4.strcmp(S1,S2) returneaza valoarea numerica 0 daca S1 si S2 sunt identice;O
valoare numerica mai mare decat 0 daca sirul S1 este mai mare decat S2;O
valoare mai mica decat 0 daca sirul S1 este mai mic decat S2.
5.stricmp(S1,S2) are acelasi rol cu functia strcmp cu deosebirea ca nu se face
diferenta intre literele mari si mici.
6.strncmp(S1,S2,n) compara primele n caractere din S1 cu primele n caractere
dinS2.Rezultatul returnat de functie este:
=0,S1=S2(n)
>0,S1>S2(n)
<0,S1<S2(n)
7.strncmpi(S1,S2,n) are acelasi rol cu functia strcmp cu deosebirea ca nu de face
diferenta dintre literele mari si mici.
8.strcat(S1,S2)…(cat=concatenare)
Prin concatenare se intelege alipirea caracterelor apartinand sirului S1.Rezultatul
concatenarii va fi regasit in sirul S1 numit sir destinatie.
Important!!!:operatia de concatenare nu este comutativa.
9.strncat(S1,S2,n) Primele n caractere din sirul S2 vor fi lipite la caracterele
sirului S1.Daca in S2 exista n carctere,vor fi concatenate toate caracterele
existente in S2.
10.strset(s,c) inlocuieste caracterele sirului s cu caracterul c dat al doilea
parametru.
11.strnset(s,c,n) primele n caractere din sirul s vor fi inlocuite cu c.Daca in s nu
sunt n caractere,vor fi inlocuite toate caraterele disponibile din s.
12.strlwr(s) toate carcterele litere mari vor fi transformate in litere mici.Celelalte
caractere(speciale si cifre) raman neschimbate.
13.strupr(s) toate caracterele in litere mari vor fi transformate in
majuscule(exceptie cifre si caracterele speciale).