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).