WCSTOK(3) Library Functions Manual WCSTOK(3)

wcstok - separa uma string de caracteres largos em tokens

Standard C library (libc, -lc)

#include <wchar.h>
wchar_t *wcstok(wchar_t *restrict wcs, const wchar_t *restrict delim,
                wchar_t **restrict ptr);

A função wcstok() é o equivalente de caracteres largos da função strtok(), com um argumento adicional para torná-la segura para multithread. Ela pode ser usada para separar uma string de caracteres largos wcs em tokens, onde um token é definido como uma substring que não contém nenhum dos caracteres largos de delim.

A busca inicia em wcs, se wcs não é NULO, ou em *ptr, se wcs é NULO. Primeiramente, quaisquer caracteres largos delimitadores são pulados, ou seja o ponteiro é avançado além de quaisquer caracteres largos que ocorrem em delim. Se o fim da string de caracteres largos é alcançado neste momento, wcstok() retorna NULO, para indicar que nenhum token foi encontrado, e guarda um valor apropriado em *ptr, de forma que chamadas subsequentes a wcstok() continuarão retornando NULO. Caso contrário, a função wcstok() reconhece o início de um token e retorna um ponteiro para ele, mas antes de fazê-lo, ela termina com zero o token, substituindo o próximo caractere largo que ocorre em delim com um caractere (L'\0'), e ela atualiza *ptr de forma que as chamadas subsequentes continuarão a busca depois do fim do token reconhecido.

A função wcstok() retorna um ponteiro para o próximo token, ou NULO se nenhum token adicional foi encontrado.

Para uma explicação dos termos usados nesta seção, consulte attributes(7).

Interface Atributo Valor
wcstok() Thread safety MT-Safe

POSIX.1-2001, POSIX.1-2008, C99.

A string de caracteres largos original wcs é modificada destrutivamente durante a operação.

O seguinte código percorre os tokens contidos numa string de caracteres largos.

wchar_t *wcs = ...;
wchar_t *token;
wchar_t *state;
for (token = wcstok(wcs, L" \t\n", &state);

token != NULL;
token = wcstok(NULL, L" \t\n", &state)) {
... }

strtok(3), wcschr(3)

A tradução para português brasileiro desta página man foi criada por Felipe M Pereira <Felipe.Pereira@ic.unicamp.br>, André Luiz Fassone <lonely_wolf@ig.com.br> e Rafael Fontenelle <rafaelff@gnome.org>.

Esta tradução é uma documentação livre; leia a Licença Pública Geral GNU Versão 3 ou posterior para as condições de direitos autorais. Nenhuma responsabilidade é aceita.

Se você encontrar algum erro na tradução desta página de manual, envie um e-mail para a lista de discussão de tradutores.

9 outubro 2022 Linux man-pages 6.01