Namespaces
Variants

std:: wcstok

From cppreference.net
Défini dans l'en-tête <cwchar>
wchar_t * wcstok ( wchar_t * str, const wchar_t * delim, wchar_t ** ptr ) ;

Trouve le jeton suivant dans la chaîne large terminée par un nul pointée par str . Les caractères séparateurs sont identifiés par la chaîne large terminée par un nul pointée par delim .

Cette fonction est conçue pour être appelée plusieurs fois afin d'obtenir des jetons successifs à partir de la même chaîne.
  • Si str ! = nullptr , l'appel est traité comme le premier appel à std::wcstok pour cette chaîne large particulière. La fonction recherche le premier caractère large qui n'est pas contenu dans delim .
  • Si aucun caractère large de ce type n'est trouvé, il n'y a aucun jeton dans str , et la fonction retourne un pointeur nul.
  • Si un tel caractère large est trouvé, il constitue le début du jeton . La fonction recherche ensuite à partir de ce point le premier caractère large qui est contenu dans delim .
  • Si aucun caractère large de ce type n'est trouvé, str ne contient qu'un seul jeton, et les appels futurs à std::wcstok retourneront un pointeur nul.
  • Si un tel caractère large est trouvé, il est remplacé par le caractère large nul L ' \0 ' et l'état de l'analyseur (généralement un pointeur vers le caractère large suivant) est stocké dans l'emplacement fourni par l'utilisateur * ptr .
  • La fonction retourne ensuite le pointeur vers le début du jeton.
  • Si str == nullptr , l'appel est traité comme un appel ultérieur à std::wcstok : la fonction continue là où elle s'était arrêtée lors de l'invocation précédente avec le même * ptr . Le comportement est le même que si le pointeur vers le caractère large qui suit le dernier jeton détecté est passé comme str .

Table des matières

Paramètres

str - pointeur vers la chaîne large terminée par un caractère nul à tokeniser
delim - pointeur vers la chaîne large terminée par un caractère nul identifiant les délimiteurs
ptr - pointeur vers un objet de type wchar_t * , qui est utilisé par wcstok pour stocker son état interne

Valeur de retour

Pointeur vers le début du prochain jeton ou pointeur nul s'il n'y a plus de jetons.

Note

Cette fonction est destructive : elle écrit les L ' \0 ' caractères dans les éléments de la chaîne str . En particulier, un littéral de chaîne large ne peut pas être utilisé comme premier argument de std::wcstok .

Contrairement à std::strtok , cette fonction ne met pas à jour le stockage statique : elle stocke l'état de l'analyseur à l'emplacement fourni par l'utilisateur.

Contrairement à la plupart des autres tokenizers, les délimiteurs dans std::wcstok peuvent être différents pour chaque token subséquent, et peuvent même dépendre du contenu des tokens précédents.

Exemple

#include <cwchar>
#include <iostream>
int main()
{
    wchar_t input[100] = L"A bird came down the walk";
    wchar_t* buffer;
    wchar_t* token = std::wcstok(input, L" ", &buffer);
    while (token)
    {
        std::wcout << token << '\n';
        token = std::wcstok(nullptr, L" ", &buffer);
    }
}

Sortie :

A
bird
came
down
the
walk

Voir aussi

trouve le jeton suivant dans une chaîne d'octets
(fonction)
Documentation C pour wcstok