Skip to content

strlen

cpp
#include <cstring>
int strlen(char* s);

strlen vine de la string + length. Efect: returneaza numarul de caractere din sirul s, fara a numara '\0' de la final.


Exemplu cu tabel

Daca s contine:

index012345678
sabece\0ar\0
cpp
strlen(s)     // 5  — numara a, b, e, c, e (se opreste la primul '\0')
strlen(s + 3) // 2  — numara de la index 3: c, e

Cum functioneaza intern

cpp
int strlen(char* s)
{
    int lg = 0;
    while (s[lg] != '\0')
        lg++;
    return lg;
}

Atentie la bucle

strlen(s) parcurge tot sirul la fiecare apel. Nu folosi strlen direct in conditia unui for daca sirul nu se scurteaza:

cpp
// Gresit — strlen(s) este recalculat la fiecare pas: O(n^2)
for (i = 0; i < strlen(s); i++) { ... }

// Corect — calculez lungimea o singura data: O(n)
int lg = strlen(s);
for (i = 0; i < lg; i++) { ... }

Exemplu complet

cpp
#include <iostream>
#include <cstring>
using namespace std;

char s[100];
int lg;

int main()
{
    cin >> s;
    lg = strlen(s);
    cout << "Lungimea: " << lg;
    return 0;
}

Intrare:

abecedar

Afisare:

Lungimea: 8