C · Intermediário · Inglês · Técnico
strtok
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.