A função wcstok () em C ++ retorna o próximo token em uma cadeia larga terminada em nulo.
A função wcstok () é definida no arquivo de cabeçalho.
protótipo wcstok ()
wchar_t * wcstok (wchar_t * str, const wchar_t * delim, wchar_t ** ptr);
A função wcstok () aceita três argumentos: str, delim e ptr. Esta função encontra o token na string larga apontada por str. O delimitador do ponteiro aponta para os caracteres separadores.
Esta função pode ser chamada várias vezes para obter tokens da mesma string larga. Existem dois casos:
- Se str não for NULL:
Uma chamada para wcstok () é considerada a primeira chamada para aquela string larga. A função procura o primeiro caractere largo que não está contido em delim. Se nenhum caractere largo for encontrado, a string ampla não contém nenhum token. Portanto, um ponteiro nulo é retornado.
Se tal caractere largo for encontrado, a partir daí a função procura por um caractere largo que está presente em delim. Se nenhum separador for encontrado, str tem apenas um token. Se um separador for encontrado, ele será substituído por L ' 0' e o ponteiro para o caractere seguinte será armazenado em * ptr. Finalmente, a função retorna o ponteiro para o início do token. - Se str for NULL:
a chamada é considerada como chamadas subsequentes para wcstok e a função continua de onde saiu na chamada anterior com o mesmo * ptr.
Parâmetros wcstok ()
- str: Ponteiro para a string larga terminada em nulo a ser tokenizada.
- delim: Ponteiro para a string larga terminada em null que contém os separadores.
- ptr: Ponteiro para um ponteiro para um caractere largo que é usado por wcstok para armazenar seu estado interno.
wcstok () Valor de retorno
- A função wcstok () retorna o ponteiro para o início do próximo token se houver algum
- Ele retorna NULL se não forem encontrados mais tokens.
Exemplo: Como funciona a função wcstok ()?
#include #include #include using namespace std; int main() ( setlocale(LC_ALL, "en_US.utf8"); wchar_t str() = L"parrot,owl,sparrow,pigeon,crow"; wchar_t delim() = L"u002c";// unicode for comma wchar_t *ptr; wcout << L"The tokens are:" << endl; wchar_t *token = wcstok(str,delim,&ptr); while (token) ( wcout << token << endl; token = wcstok(NULL,delim,&ptr); ) return 0; )
Quando você executa o programa, a saída será:
Os tokens são: papagaio, coruja, pardal, pombo, corvo