NOMBRE
strtok, strtok_r − extraen un token de una cadena
SINOPSIS
#include <string.h>
char *strtok(char *s, const char *delim);
char *strtok_r(char *s, const char *delim, char **ptrptr);
DESCRIPCIÓN
Un ’token’ es una cadena de caracteres no vacía que no está en la cadena delim, seguida por \0 o por un caracter que está en delim.
La función strtok() puede usarse para analizar (parse) la cadena s en tokens. La primera llamada a strtok() debería tener s como primer argumento. Llamadas subsiguientes deberían tener el primer argumento puesto a NULL. Cada llamada devuelve un puntero al siguiente token, o NULL cuando no se pueden encontrar más tokens.
Si un token termina con un delimitador, este caracter de delimitación es sobreescrito con un \0 y se guarda un puntero al siguiente caracter para la siguiente llamada a strtok(). La cadena de delimitación delim puede ser diferente para cada llamada.
La función strtok_r() es una versión reentrante de la función strtok() , que en lugar de usar su propio buffer estático, requiere uno previamente reservado por el usuario. Este puntero, el parámetro ptrptr , debe ser el mismo mientras se analiza la misma línea.
FALLOS
Nunca use estas funciones. Si lo hace, tenga en cuenta que:
Estas funciones modifican su primer argumento.
Estas funciones no pueden ser usadas con constantes de cadena.
La identidad del carácter delimitador se pierde.
La función strtok() usa un buffer estático mientras analiza la línea, por lo que no es hilo-seguro. Use strtok_r() si este asunto le preocupa.
VALOR DEVUELTO
La función strtok() devuelve un puntero al siguiente token, o NULL si no hay más tokens.
CONFORME A
strtok()
SVID 3, POSIX, BSD 4.3, ISO 9899
strtok_r()
POSIX.1c
VÉASE TAMBIÉN
index(3), memchr(3), rindex(3), strchr(3), strpbrk(3), strsep(3), strspn(3), strstr(3)