C · Essencial · Inglês · Técnico
strlen
Função de string.h que devolve o número de bytes de uma string antes do terminador nulo. Percorre a string inteira a cada chamada, então custa tempo proporcional ao tamanho.
Onde usar
Chamar strlen na condição de um laço refaz a varredura a cada volta e torna o laço quadrático. Guarde o resultado em uma variável antes.
Em código
const char *s = "canção";
size_t n = strlen(s); // 8 bytes em UTF-8
for (size_t i = 0; i < n; i++)
putchar(s[i]);Exemplos
Don't call strlen in the loop condition.
Não chame strlen na condição do laço.
strlen counts bytes, so accented letters count twice in UTF-8.
O strlen conta bytes, então letras acentuadas contam dobrado em UTF-8.
Cuidado
Esquecer que strlen não conta o '\0' e conta bytes, não caracteres: em UTF-8 uma letra acentuada ocupa dois.
Origem
Abreviação de string length.