Descobrindo o comprimento de uma string

C++:
Descobrindo o comprimento de uma string

How to:

C++ oferece métodos simples para essa tarefa. Vamos usar length() e size() — sim, os dois funcionam igual no mundo das strings. Confira:

#include <iostream>
#include <string>
using namespace std;

int main() {
    string minha_string = "Olá, programadores!";
    cout << "Tamanho usando length(): " << minha_string.length() << endl;
    cout << "Tamanho usando size(): " << minha_string.size() << endl;
    return 0;
}

Saída:

Tamanho usando length(): 20
Tamanho usando size(): 20

Ambos dizem quantos caracteres temos. Simples assim.

Deep Dive

O negócio dos tamanhos vem de longe. Na era do C, strlen() fazia o serviço, mas iterando até achar o terminador nulo '\0'. Hoje, com C++, string::length() e string::size() são sinônimos e retornam um size_type. Eles são rápidos porque a std::string guarda seu tamanho.

Alternativas? Podemos falar de std::string_view em C++17, que dá um jeito de ver strings sem copiar. E tem o std::strlen() da biblioteca <cstring>, herança do C.

No caso da implementação, std::string tem a eficiência incorporada. Não é a busca cega de antigamente. Saber o tamanho é instantâneo, é parte da estrutura da string, então tanto length() quanto size() são O(1).

See Also

Para uma olhada mais aprofundada nas entranhas das strings em C++: