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.
- 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)