C ++ wcstok () - Biblioteca C ++ Padrão

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:

  1. 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.
  2. 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

Artigos interessantes...