Functii utile pentru sirurile de caractere din C++

Am discutat in trecut despre sirurile de caractere din C++, insa pentru a ne face viata mai usoara avem nevoie de niste functii predefinite de libraria cstring. Sunte foarte multe functii, iar daca vei deveni programator, inca vei cauta pe internet aceste functii. Cu toate acestea, sunt cateva functii care sunt foarte utile pentru sirurile de caractere. Utile cel putin la liceu, respectiv la examenul de bacalaureat (daca va mai exista).

Daca nu ai citit inca primul tutorial unde am vorbit despre bazele sirurilor de caractere, iti recomandam sa revii la acesta dupa ce l-ai citit pe cel anterior.

Biblioteca folosita pentru utilizarea functiilor: cstring.


strlen

Functia returneaza lungimea sirului introdus ca parametru (numarul de caractere, inclusiv spatiul, caracterele speciale, chiar si numere).

Exemplu:

Functia strlen returneaza exact numarul caracterelor dintr-un sir de caractere, insa numerotarea propriu-zisa se face de la 0.

Functii utile pentru sirurile de caractere

strcat

strcat sau concatenare/adaugare. Adauga (concateneaza) caracterele aflate in source la sirul destination.

Exemplu:


strcpy

Functia copiaza caracterele din sirul aflat in source (inclusiv caracterul nul), in sirul destination.

Functia returneaza sirul aflat in destination.

Exemplu:


strncpy

Functia copiaza cel mult num caractere din sirul aflat in source, in sirul aflat in destination.

Exemplu:


strchr

Cauta caracterul character in sirul str.Functia returneaza NULL, daca caracterul character nu apare in str, respectiv prima aparitie a lui character in str, daca character apare in str.

Exemplu:


strstr

Functia caute sirul de caractere str2 in sirul str.Returneaza NULL daca sirul str2 nu apare in str, respectiv prima aparitie a lui str2 in str, daca apare.

Exemplu:


strcmp

Functia compara lexicografic cele doua siruri de caractere.
Daca sirul str1 este lexicografic mai mic decat str2, functia va returna o valoare negativa.Daca sirul str1 este lexicografic mai mare decat str2, functia va returna o valoare pozitiva.Daca cele doua siruri sunt identice, functia va returna valoarea 0.

Exemplu:

Se va afisa Nu, deoarece se compara astfel:Functia parcurge fiecare litera a celor doua siruri, astfel, se observa ca primele 3 litere din ambele siruri sunt identice, insa a 4-a litera (d, respectiv e) este diferite si returneaza o valoare negativa, deoarece d este mai mic decat e, lexicografic.


strtok

Functia strtok extrage dintr-un sir „principal”, cate un subsir.Acest subsiruri, oarecum le selectam noi, deoarece aceasta functia preia caracterele pana intalneste un delimitator/separator specificat de noi.
Functia se apeleaza in doua moduri:

  • Primul apel are ca parametrii un sir din care se extrage subsir-ul, respectiv delimitatorul/separatorul.
  • Al doilea apel are ca parametrii NULL, respectiv separatorul.

Exemplu:

Explicatie: Ne-am format un sir de caractere separator. Mai exact,  am vrut ca strtok sa preia toate caracterele pana intalneste un caracter din sirul separator (spatiu, punct, virgula, etc..). Pe scurt, luam fiecare cuvant dintr-o propozitie.

Astfel, algoritmul va afisa:

De fiecare data, p-ul nostru isi va pierde valoarea. Daca va fi nevoie retinerea lui, trebuie sa ne folosim de o noua variabile in care sa retinem cuvintele/sirul dorit.

Pentru a memora mai bine functiile, recomandam rezolvarea acestor probleme.

Vlad

Fac doar lucruri care-mi plac, care-mi aduc motivatie si fericire, nu material.

Lasă un răspuns

Adresa ta de email nu va fi publicată. Câmpurile obligatorii sunt marcate cu *