ExpertiDict

C · Essencial · Inglês · Técnico

strlen

/ˈstɹɪŋˌlɛn/substantivo

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.

Veja também

Todos os termos de C