std:: wcstok
|
Definiert in Header
<cwchar>
|
||
|
wchar_t
*
wcstok
(
wchar_t
*
str,
const
wchar_t
*
delim,
wchar_t
**
ptr
)
;
|
||
Findet das nächste Token in einer nullterminierten Breitzeichen-Zeichenkette, auf die gezeigt wird von str . Die Trennzeichen werden identifiziert durch eine nullterminierte Breitzeichen-Zeichenkette, auf die gezeigt wird von delim .
-
-
Falls
str
!
=
nullptr
, wird der Aufruf als erster Aufruf von
std::wcstokfür diese spezifische Breitzeichenkette behandelt. Die Funktion sucht nach dem ersten Breitzeichen, das nicht in delim enthalten ist.
-
- Wird kein solches Breitzeichen gefunden, existieren keine Tokens in str und die Funktion gibt einen Nullzeiger zurück.
- Wird ein solches Breitzeichen gefunden, stellt es den Beginn des Tokens dar. Die Funktion sucht ab diesem Punkt nach dem ersten Breitzeichen, das in delim enthalten ist.
-
-
Wird kein solches Breitzeichen gefunden, besitzt
str
nur ein Token und zukünftige Aufrufe von
std::wcstokgeben einen Nullzeiger zurück. - Wird ein solches Breitzeichen gefunden, wird es ersetzt durch das Null-Breitzeichen L ' \0 ' und der Parserzustand (typischerweise ein Zeiger auf das folgende Breitzeichen) wird im benutzerdefinierten Speicherort * ptr gespeichert.
-
Wird kein solches Breitzeichen gefunden, besitzt
str
nur ein Token und zukünftige Aufrufe von
- Die Funktion gibt dann den Zeiger auf den Beginn des Tokens zurück.
-
Falls
str
==
nullptr
, wird der Aufruf als nachfolgender Aufruf von
std::wcstokbehandelt: Die Funktion setzt an der Stelle fort, an der sie im vorherigen Aufruf mit demselben * ptr aufgehört hat. Das Verhalten entspricht dem, als ob der Zeiger auf das Breitzeichen, das auf das letzte erkannte Token folgt, als str übergeben würde.
-
Falls
str
!
=
nullptr
, wird der Aufruf als erster Aufruf von
Inhaltsverzeichnis |
Parameter
| str | - | Zeiger auf die nullterminierte Breitzeichen-Zeichenkette zur Tokenisierung |
| delim | - | Zeiger auf die nullterminierte Breitzeichen-Zeichenkette mit Trennzeichen |
| ptr | - | Zeiger auf ein Objekt vom Typ wchar_t * , das von wcstok zur Speicherung seines internen Zustands verwendet wird |
Rückgabewert
Zeiger auf den Anfang des nächsten Tokens oder Nullzeiger, falls keine weiteren Tokens vorhanden sind.
Hinweis
Diese Funktion ist destruktiv: sie schreibt die
L
'
\0
'
Zeichen in die Elemente des Strings
str
. Insbesondere kann ein Wide-String-Literal nicht als erstes Argument von
std::wcstok
verwendet werden.
Im Gegensatz zu std::strtok aktualisiert diese Funktion keinen statischen Speicher: Sie speichert den Parser-Zustand im benutzerbereitgestellten Speicherort.
Im Gegensatz zu den meisten anderen Tokenizern können die Trennzeichen in
std::wcstok
für jeden nachfolgenden Token unterschiedlich sein und können sogar von den Inhalten der vorherigen Token abhängen.
Beispiel
#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); } }
Ausgabe:
A bird came down the walk
Siehe auch
|
findet das nächste Token in einer Byte-Zeichenkette
(Funktion) |
|
|
C-Dokumentation
für
wcstok
|
|