C ++ wcstok () - C ++ Standardbibliothek

Die Funktion wcstok () in C ++ gibt das nächste Token in einer nullterminierten breiten Zeichenfolge zurück.

Die Funktion wcstok () ist in der Header-Datei definiert.

wcstok () Prototyp

 wchar_t * wcstok (wchar_t * str, const wchar_t * delim, wchar_t ** ptr);

Die Funktion wcstok () akzeptiert drei Argumente: str, delim und ptr. Diese Funktion findet das Token in der breiten Zeichenfolge, auf die str zeigt. Die Zeigerbegrenzung zeigt auf die Trennzeichen.

Diese Funktion kann mehrmals aufgerufen werden, um Token von derselben breiten Zeichenfolge zu erhalten. Es gibt zwei Fälle:

  1. Wenn str nicht NULL ist:
    Ein Aufruf von wcstok () wird als erster Aufruf für diesen breiten String betrachtet. Die Funktion sucht nach dem ersten breiten Zeichen, das nicht in delim enthalten ist. Wenn kein so breites Zeichen gefunden wird, enthält die breite Zeichenfolge kein Token. Es wird also ein Nullzeiger zurückgegeben.
    Wenn ein so breites Zeichen gefunden wird, sucht die Funktion von da an nach einem breiten Zeichen, das in delim vorhanden ist. Wenn kein Trennzeichen gefunden wird, hat str nur ein Token. Wenn ein Trennzeichen gefunden wird, wird es durch L ' 0' ersetzt und der Zeiger auf das folgende Zeichen wird in * ptr gespeichert. Schließlich gibt die Funktion den Zeiger auf den Anfang des Tokens zurück.
  2. Wenn str NULL ist:
    Der Aufruf wird als nachfolgender Aufruf von wcstok betrachtet und die Funktion wird an der Stelle fortgesetzt, an der sie beim vorherigen Aufruf mit demselben * ptr verblieben ist.

wcstok () Parameter

  • str: Zeiger auf die nullterminierte breite Zeichenfolge zum Tokenisieren.
  • delim: Zeiger auf die nullterminierte breite Zeichenfolge, die die Trennzeichen enthält.
  • ptr: Zeiger auf einen Zeiger auf ein breites Zeichen, das von wcstok zum Speichern seines internen Status verwendet wird.

wcstok () Rückgabewert

  • Die Funktion wcstok () gibt den Zeiger auf den Anfang des nächsten Tokens zurück, falls vorhanden
  • Es gibt NULL zurück, wenn keine Token mehr gefunden werden.

Beispiel: Wie funktioniert die Funktion 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; )

Wenn Sie das Programm ausführen, lautet die Ausgabe wie folgt:

 Die Token sind: Papageien-Eulen-Spatzentaubenkrähe

Interessante Beiträge...