ExpertiDict

C · Intermediário · Inglês · Técnico

strtok

/ˈstɝ.tɑk/função

Função de string.h que divide uma string em pedaços (tokens) separados por delimitadores, alterando a original ao trocar delimitadores por caractere nulo e guardando estado interno entre chamadas.

Onde usar

Aparece ao quebrar linhas de CSV ou comandos. Como usa estado estático, não é reentrante nem thread-safe, por isso se prefere strtok_r (POSIX).

Em código

#include <stdio.h>
#include <string.h>
int main(void) {
  char s[] = "a,b,c", *t;
  for (t = strtok(s, ","); t;
       t = strtok(NULL, ","))
    puts(t);
}

Exemplos

strtok modifies the string, so pass a writable copy.

O strtok modifica a string, então passe uma cópia gravável.

Use strtok_r in threaded code.

Use strtok_r em código com threads.

Cuidado

Chamar strtok sobre um literal de string, que é somente leitura, ou aninhar duas varreduras, pois a segunda destrói o estado da primeira.

Sinônimos

separador de tokens

Origem

Abreviação de string tokenize.

Veja também

Todos os termos de C