Documente Academic
Documente Profesional
Documente Cultură
Sintaxă
Input Output
str = CPP Lungimea sirului str este: 3
Mecanism
Lungimea șirului de caractere 𝑠𝑡𝑟 este determinată de poziția caracterului nul. Lungimea unui
șir de caractere include toate caracterele din șirul respectiv cuprinse între acestuia (poziția cu
indicele 0 a șirului, inclusiv) și caracterul nul (exclusiv).
Lungimea unui șir de caractere nu trebuie confundată cu mărimea vectorului în care este stocat
șirul de caractere:
De exemplu:
𝑠𝑡𝑟 este un vector care poate stoca 100 de caractere, dar lungimea șirului de caractere 𝑠𝑡𝑟 este
doar de 3 caractere.
Funcția determină lungimea șirului de caractere parcurgând șirul de caractere de la începutul
său (poziția cu indicele 0) până la întâlnirea caracterului nul.
Complexitatea funcției strlen este 𝑂(𝑁) unde 𝑁 este lungimea șirului de caractere. Din
această cauză, dacă se dorește parcurgerea unui șir de caractere, este recomandată evitarea
instrucțiunilor de tipul:
În acest caz, funcția 𝑠𝑡𝑟𝑙𝑒𝑛 este apelată de fiecare dată când este comparată variabila 𝑖 cu
lungimea șirului de caractere 𝑠𝑡𝑟. Așadar, la fiecare comparație se execută 𝑁 pași unde 𝑁 este
lungimea șirului de caractere.
În schimb, este recomandată stocarea valorii lungimi șirului de caractere într-o variabilă (pentru
a evita apelarea repetată a funcției s𝑡𝑟𝑙𝑒𝑛):
Funcția strcmp
Sintaxă
Mecanism
Compară lexicografic șirurile de caractere.
Complexitatea funcției strcmp este 𝑂(𝑁 + 𝑀), unde 𝑁 și 𝑀 reprezintă lungimile celor două
șiruri de caractere (𝑠𝑡𝑟1 și 𝑠𝑡𝑟2). Se execută 𝑁 pași pentru determinarea lungimii șirului de
caractere 𝑠𝑡𝑟1, 𝑀 pași pentru determinarea lungimii șirului de caractere 𝑠𝑡𝑟2, min(𝑁, 𝑀)
pentru compararea celor două șiruri de caractere și încă un număr constant de instrucțiuni 𝐶.
În total se execută 𝑁 + 𝑀 + min(𝑁, 𝑀) + 𝐶 pași, de unde rezultă complexitatea algoritmului.
Funcția strcpy
Sintaxă
Parametrii: un șir de caractere 𝑑𝑒𝑠𝑡 și un șir de caractere 𝑠𝑟𝑐 care urmază a fi copiat în șirul
de caractere 𝑑𝑒𝑠𝑡.
Valoare returnată: după ce copiază șirul 𝑠𝑟𝑐 în șirul 𝑑𝑒𝑠𝑡, funcția returnează un pointer către
șirul de caractere 𝑑𝑒𝑠𝑡.
Input Output
src = CPP dest = CPP
Mecanism
Funcția copiază în totalitate șirul de caractere 𝑠𝑟𝑐 în șirul de caractere 𝑑𝑒𝑠𝑡. Verbul “a copia”
poate avea o latură înșelătoare, astfel efectul funcței poate fi înțeles în mod greșit ca o operație
de adăugare, lipire, concatenare.
Un lucru important îl reprezintă dimensiunea vectorului în care este copiat șirul de caractere
𝑠𝑟𝑐. Dacă lungimea șirului de caractere 𝑠𝑟𝑐 este mai mare decât marimea vectorului 𝑑𝑒𝑠𝑡,
atunci pot apărea erori (depinde de mediul de programare utilizat, se poate să nu apară nicio
eroare).
Un model de implementare al funcției strcpy este:
Complexitatea funcției strcpy este 𝑂(𝑁) unde 𝑁 reprezintă lungimea șirului de caractere 𝑠𝑟𝑐,
complexitate care rezultă, în mod evident, din parcurgerea șirului de caractere 𝑠𝑟𝑐.
Funcția strcat
Sintaxă
Parametrii: un șir de caractere (𝑑𝑒𝑠𝑡) și un șir de caractere (𝑠𝑡𝑟) care urmează a fi adăugat la
sfârșitul șirului 𝑑𝑒𝑠𝑡.
Valoarea returnată: după ce șirul 𝑠𝑟𝑐 a fost adăugat la sfârșitul șirului 𝑑𝑒𝑠𝑡, funcția
returnează un pointer către șirul de caractere dest.
Input Output
dest = CPP dest = CPPcpp
src = cpp
Mecanism
Funcția adaugă în totalitate șirul de caractere 𝑠𝑟𝑐 la sfârșitul șirului de caractere 𝑑𝑒𝑠𝑡.
Această operație este cunoscută sub numele de concatenare.
Un lucru important îl reprezintă dimensiunea vectorului la care este adăugat șirul de caractere
𝑠𝑟𝑐. Dacă lungimea șirului de caractere 𝑠𝑟𝑐 este mai mare decât marimea vectorului 𝑑𝑒𝑠𝑡,
atunci pot apărea erori (depinde de mediul de programare utilizat, se poate să nu apară nicio
eroare).
Funcția strchr
Sintaxă
Parametrii: un șir de caractere (𝑠𝑡𝑟) și un număr întreg (𝑐) reprezentând codul ASCII al
caracterului care urmează a fi căutat (se poate transimte ca parametru și caracterul în sine,
conversia va avea loc automat).
Valoare returnată: în cazul în care caracterul căutat nu se găsește în șir, atunci este returnat
pointerul nul/ caracterul nul, altfel este returnat un pointer către prima poziție (de la stânga la
dreapta) la care apare caracterul căutat.
Input Output
str = Ana are mere si pere Caracterul nu exista in sir!
caracter = Q
str = Ana are mere si pere re mere si pere
caracter = r
Mecanism
Funcția caută în șirul de caractere 𝑠𝑡𝑟, de la stânga la dreapta, caracterul care are codul
ASCII 𝑐. În cazul în care caracterul a fost găsit, este returnat imediat un pointer către poziția
din șirul 𝑠𝑡𝑟 la care a fost găsit caracterul. Dacă a fost parcurs tot șirul și nu a fost returnat
nimic, atunci este returnat pointerul nul (caracterul nul) deoarece caracterul căutat nu se află
în șir.
Un model de implementare al funcției strchr este:
Atenție: în acest caz, caracterul nul nu reprezintă sfârșitul șirului (𝑠𝑡𝑟 + 𝑁, 𝑠𝑡𝑟[𝑁]) ci
pointerul nul.
Complexitatea funcției strchr este 𝑂(𝑁) unde 𝑁 este lungimea șirului de caractere 𝑠𝑡𝑟,
complexitate care rezultă, în mod evident, din parcurgerea șirului de caractere 𝑠𝑡𝑟.
Funcția strstr
Sintaxă
Mecanism