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 null-terminierten Wide-String-Zeichenkette, auf die von str gezeigt wird. Die Trennzeichen werden durch die null-terminierte Wide-String-Zeichenkette identifiziert, auf die von delim gezeigt wird.
- Wenn str != nullptr ist, wird der Aufruf als erster Aufruf von
std::wcstokfür diese spezielle Wide-String-Zeichenkette behandelt. Die Funktion sucht nach dem ersten Wide-Zeichen, das nicht in delim enthalten ist.
- Wenn kein solches Wide-Zeichen gefunden wird, gibt es überhaupt keine Tokens in str, und die Funktion gibt einen Nullzeiger zurück.
- Wenn ein solches Wide-Zeichen gefunden wird, ist es der Anfang des Tokens. Die Funktion sucht dann von diesem Punkt aus nach dem ersten Wide-Zeichen, das in delim enthalten ist.
- Wenn kein solches Wide-Zeichen gefunden wird, hat str nur ein Token, und zukünftige Aufrufe von
std::wcstokgeben einen Nullzeiger zurück. - Wenn ein solches Wide-Zeichen gefunden wird, wird es durch das Null-Wide-Zeichen L'\0' ersetzt, und der Parser-Status (typischerweise ein Zeiger auf das folgende Wide-Zeichen) wird an der vom Benutzer bereitgestellten Stelle *ptr gespeichert.
- Wenn kein solches Wide-Zeichen gefunden wird, hat str nur ein Token, und zukünftige Aufrufe von
- Die Funktion gibt dann den Zeiger auf den Anfang des Tokens zurück.
- Wenn str == nullptr ist, wird der Aufruf als nachfolgender Aufruf von
std::wcstokbehandelt: Die Funktion fährt dort fort, wo sie in der vorherigen Ausführung mit demselben *ptr aufgehört hat. Das Verhalten ist dasselbe, als ob der Zeiger auf das Wide-Zeichen, das auf das zuletzt erkannte Token folgt, als str übergeben würde.
- Wenn str != nullptr ist, wird der Aufruf als erster Aufruf von
Inhalt |
[edit] Parameter
| str | - | Zeiger auf die null-terminierte Wide-String-Zeichenkette, die tokenisiert werden soll |
| delim | - | Zeiger auf die null-terminierte Wide-String-Zeichenkette, die Trennzeichen identifiziert |
| ptr | - | Zeiger auf ein Objekt vom Typ wchar_t*, das von wcstok zum Speichern seines internen Zustands verwendet wird |
[edit] Rückgabewert
Zeiger auf den Anfang des nächsten Tokens oder Nullzeiger, wenn keine Tokens mehr vorhanden sind.
[edit] Hinweis
Diese Funktion ist destruktiv: Sie schreibt die Zeichen L'\0' in die Elemente der Zeichenkette 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-Status an der vom Benutzer bereitgestellten Stelle.
Im Gegensatz zu den meisten anderen Tokenizern können die Trennzeichen in std::wcstok für jedes aufeinanderfolgende Token unterschiedlich sein und sogar vom Inhalt der vorherigen Tokens abhängen.
[edit] 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
[edit] Siehe auch
| findet das nächste Token in einem Byte-String (Funktion) | |
| C-Dokumentation für wcstok
| |