Funcții predefinite pentru șiruri de caractere



Următoarele funcții prelucrează șiruri de caractere. Dacă nu se precizează altfel, prototipul lor se află în header-ul cstring.


strlen

strlen( const char* str );

Returnează lungimea șirului str, adică numărul de caractere din șirul al cărui prim caracter se află la adresa memorată în str. Caracterul nul nu se numără.


Exemple:

cout << strlen("bac"); // 3
char s[10]="copil";
cout << strlen(s); // 5
cout << strlen(s + 2); //3


strcpy

strcpy( char* dest, const char* src );

Copiază caracterele din șirul aflat la adresa src, inclusiv caracterul nul, în șirul al cărui prim element se află la adresa din dest.


Funcția returnează adresa dest.


Exemple:

char s[21], t[21] = "copil";
strcpy(s , "bac");
cout << s; // bac
strcpy(s , t);
cout << s; // copil
strcpy(s , t + 2);
cout << s; // pil
strcpy(s + 2 , t);
cout << s; // picopil


strcat

strcat( char *dest, const char *src );

Adaugă (concatenează) caracterele din șirul aflat la adresa src, inclusiv caracterul nul, la șirul al cărui prim element se află la adresa din dest.


Funcția returnează adresa dest.


Exemple:

char s[21]="bac", t[21] = "copil";
strcat(s , t);
cout << s; // baccopil
strcat(s , t + 2);
cout << s; // baccopilpil


strchr

strchr( char * str, char ch );

Caută caracterul ch în șirul al cărui prim caracter se află în memorie la adresa din str.


Funcția returnează adresa NULL, dacă caracterul ch nu apare în șirul str, respectiva adresa primei apariții al lui ch în str, dacă ch apare în str.


Exemple:

char s[21]="bacalaureat";
char * p = strchr(s , 'l');
cout << p; // laureat

char ch = 'i';
if(strchr("aeiou" , ch) != NULL)
  cout << "DA"
else
  cout << "NU";
//se va afisa DA


strstr

strstr( char * s, char * t );

Caută șirul t în șirul al cărui prim caracter se află în memorie la adresa din s.


Funcția returnează adresa NULL, dacă șirul t nu apare în șirul s, respectiva adresa primei apariții al lui t în s, dacă t apare în s.


Exemple:

char s[21]="bacalaureat";
char * p = strstr(s , "lau");
cout << p; // laureat


strcmp

strcmp( char * s, char * t );

Compară lexicografic cele două șiruri de caractere:


Exemple:

char s[21]="abur", t[21]="abecedar";
if(strcmp(s , t) < 0)
  cout << "Da"
else
  cout << "Nu";
// se va afisa Nu; cuvantul "abur" este lexicografic dupa "abecedar"


strtok

strtok( char *str, const char *sep );

Funcția strtok extrage dintr-un sir de caractere câte un subșir (cuvânt) delimitat de caractere din șirul sep. Funcția se apelează în două moduri:

Rezultatul funcției strtok este adresa de început a subșirului curent extras, sau NULL dacă nu se mai poate extrage niciun subșir din șirul dat.


Exemplu:

Secvența de mai jos extrage dintr-un șir s cuvintele (separate prin caractere din mulțimea {' ', ',', '.'}) și le afișează pe linii diferite. Șirul s se presupune declarat și citit.

char sep[]=" .,";
char * p = strtok(s , sep);
while(p != NULL)
{
    cout << p << endl;
    p = strtok(NULL , sep);
}

Color Contrast

Text Size

Text Spacing

Reading Aids


În această secțiune poți genera un rezumat al conținutului paginii folosind AI! Fii liber să folosești butonul de mai jos oricând ești pe grabă și nu ai timp să înveți tot!


Summary

În această secțiune poți întreba expertul nostru robot orice legat de nelămuririle pe care le-ai întâlnit de-a lungul lecțiilor! Fii liber să folosești butonul de mai jos oricând ai nevoie de explicații adiționale!


Chatbot