STRTOK(3)

NOME
strtok, strtok_r - extrai 'tokens' de seqüencias de caractere

SINÓPSE
#include <string.h>

char *strtok(char *s, const char *delim);

char *strtok_r(char *s, const char *delim, char **ptrptr);

DESCRIÇÃO
Um 'token' é uma seqüencias não vazia de caracteres que não ocorram na seqüencias delim, seguido por \0 ou por um caractere que ocorra em delim.

A função strtok() pode ser usada para decompor a seqüencias s em 'tokens'. A primeira chamada a strtok() deve ter s como seu primeiro argumento. Chamadas subseqüentes devem ter o primeiro argumento definido para NULO. Cada chamada retorna um ponteiro para o próximo 'token', ou NULO quando não são mais encontrados 'tokens'.

Se um 'token' acaba com um delimitador, este caractere delimitador é sobrescrito com um \0 e um ponteiro para o próximo caractere é salvo para a próxima chamada a strtok(). A seqüencias delimitadora delim pode ser diferente para cada chamada.

A função strtok_r() funciona do mesmo modo que strtok() , mas em vez de utilizar uma porção estática de memória ela usa um ponteiro para um ponteiro char* alocado pelo usuário. Esse ponteiro, o parâmetro ptrptr , deve ser o mesmo enquanto decompondo a mesma seqüencias.

PROBLEMAS
Nunca utilize estas funções. Se o fizer, note que:

    Estas funções modificam seu primeiro argumento.

    A identidade do caractere delimitador é perdida.

    Estas funções não podem ser usadas em seqüencias constantes.

    A função strtok() utiliza memória estática durante a decomposição, portante não é segura para 'thread'. Use strtok_r() se isso importa para você.

VALORES RETORNADOS
A função strtok() retorna um ponteiro para o próximo 'token', ou NULO se não há mais 'tokens'.

DE ACORDO COM

strtok()
    SVID 3, POSIX, BSD 4.3, ISO 9899.

strtok_r()
    POSIX.1c.

VEJA TAMBÉM
index(3), memchr(3), rindex(3), strchr(3), strpbrk(3), strsep(3), strspn(3), strstr(3).

TRADUZIDO POR LDP-BR em 15/03/2001.

  Tradução:
Marcelo M. de Abreu <mmabreu@terra.com.br>

  Revisão.:
André Luiz Fassone <lonely_wolf@ig.com.br>