strlen
std::size_t strlen( const char* str );
Returneaza lungimea sirului str, adica numarul de caractere din sirul al carui prim caracter se afla la adresa memorata in str. Caracterul nul nu se numara.
cout << strlen("pbinfo"); // 6
char s[10]="copil";
cout << strlen(s); // 5
cout << strlen(s + 2); //3
strcpy
char* strcpy( char* dest, const char* src );
Copiaza caracterele din sirul aflat la adresa src, inclusiv caracterul nul, in sirul al carui prim element se afla la adresa din dest.
/p>
char s[21], t[21] = "copil";
strcpy(s , "pbinfo");
cout << s; // pbinfo
strcpy(s , t);
cout << s; // copil
strcpy(s , t + 2);
cout << s; // pil
strcpy(s + 2 , t);
cout << s; // picopil
strncpy
char *strncpy( char *dest, const char *src, std::size_t count );
Copiaza cel mult count caractere din sirul aflat la adresa src, in sirul al carui prim element se afla la adresa din dest.
char s[100]="abcdefghjkl";
strncpy(s, "poveste", 3);
cout << s; // povdefghjkl
strcat
char *strcat( char *dest, const char *src );
Adauga (concateneaza) caracterele din sirul aflat la adresa src, inclusiv caracterul nul, la sirul al carui prim element se afla la adresa din dest.
char s[21]="pbinfo", t[21] = "copil";
strcat(s , t);
cout << s; // pbinfocopil
strcat(s , t + 2);
cout << s; // pbinfocopilpil
strchr
char *strchr( char * str, char ch );
Cauta caracterul ch in sirul al carui prim caracter se afla in memorie la adresa din str.
char s[21]="pbinfo";
char * p = strchr(s , 'i');
cout << p; // info
char ch = 'i';
if(strchr("aeiou" , ch) != NULL)
cout << "DA"
else
cout << "NU";
//se va afisa DA
strstr
char *strstr( char * s, char * t );
Cauta sirul t in sirul al carui prim caracter se afla in memorie la adresa din s.
char s[21]="pbinfo";
char * p = strstr(s , "inf");
cout << p; // info
strcmp
int strcmp( char * s, char * t );
daca sirul s este lexicografi mai mic decat t functia va returna o valoare negativa
daca sirul s este lexicografi mai mare decat t functia va returna o valoare pozitiva
daca cele doua siruri sunt identice functia va returna valoarea 0
Standardul C/C++ stabileste doar semnul rezultatului, nu si valoarea acestuia. Valorile returnate pot fi, dar nu trebuie sa fie, -1 0 1.
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
char *strtok( char *str, const char *sep );
primul apel are ca parametri sirul din care se face extragerea si sirul separatorilor
la urmatoarele apeluri primul parametru este NULL.
Rezultatul functiei strtok este adresa de inceput a subsirului curent extras, sau NULL daca nu se mai poate extrage niciun subsir din sirul dat.
char sep[]=" .,";
char * p = strtok(s , sep);
while(p != NULL)
{
cout << p << endl;
p = strtok(NULL , sep);
}