NOMBRE¶
wcstok - divide una cadena de caracteres anchos en tokens
SYNOPSIS¶
#include <wchar.h>
wchar_t *wcstok (wchar_t *wcs, const wchar_t *delim, wchar_t **ptr);
DESCRIPCIÓN¶
La función wcstok es el equivalente de caracteres anchos de la
función strtok, con el argumento añadido para hacerlo
seguro en un entorno multihilo. Se puede usar para dividir una cadena de
caracteres anchos wcs en tokens, donde un token se define como una
subcadena que no contenga ningún carácter ancho de delim.
La búsqueda comienza en wcs, si wcs no es
NULL, o en *ptr, si wcs es NULL. Primero, cualquier
carácter ancho delimitador se salta, es decir, el puntero avanza
más allá de cualquier carácter ancho que aparezca en
delim. Si ahora se alcanza el final de la cadena de caracteres
anchos, wcstok devuelve NULL, para indicar que no se ha encontrado
ningún token y guarda un valor apropiado en *ptr. Así,
las sucesivas llamadas a wcstok continuarán devolviendo NULL.
En otro caso, la función wcstok reconoce el comienzo de un
token y devuelve un puntero a él, pero antes de hacerlo termina en
cero el token reemplazando el siguiente carácter ancho que aparece en
delim por un carácter L'\0' y actualiza *ptr para que
las sucesivas llamadas continúen buscando tras el final del token
reconocido.
VALOR DEVUELTO¶
La función wcstok devuelve a un puntero al siguiente token, o NULL
si no se encuentran más token.
OBSERVACIONES¶
La cadena de caracteres anchos original wcs se modifica de forma
destructiva durante la operación.
EJEMPLO¶
El siguiente código realiza un bucle sobre los tokens contenidos en una
cadena de caracteres anchos.
wchar_t *wcs = ...;
wchar_t *token;
wchar_t *state;
for (token = wcstok(wcs, " \t\n", &state);
token != NULL;
token = wcstok(NULL, " \t\n", &state)) {
...
}