Funkcia wcstok () v C ++ vráti nasledujúci token v širokom reťazci zakončenom nulou.
Funkcia wcstok () je definovaná v hlavičkovom súbore.
prototyp wcstok ()
wchar_t * wcstok (wchar_t * str, const wchar_t * delim, wchar_t ** ptr);
Funkcia wcstok () má tri argumenty: str, delim a ptr. Táto funkcia nájde token v širokom reťazci, na ktorý ukazuje str. Oddeľovač ukazovateľa ukazuje na oddeľovacie znaky.
Túto funkciu je možné zavolať viackrát, aby ste získali tokeny z rovnakého širokého reťazca. Existujú dva prípady:
- Ak str nie je NULL:
Hovor wcstok () sa považuje za prvé volanie pre tento široký reťazec. Funkcia vyhľadá prvý široký znak, ktorý nie je obsiahnutý v oddeľovači. Ak nenájdete taký široký znak, široký reťazec neobsahuje žiadny token. Vráti sa teda nulový ukazovateľ.
Ak sa nájde taký široký znak, odtiaľ funkcia vyhľadá široký znak, ktorý je v oddeľovači. Ak nenájdete oddeľovač, str má iba jeden token. Ak sa nájde oddeľovač, nahradí sa znakom L ' 0' a ukazovateľ na nasledujúci znak sa uloží do * ptr. Nakoniec funkcia vráti ukazovateľ na začiatok tokenu. - Ak str je NULL:
Hovor sa považuje za následné volanie wcstok a funkcia pokračuje od miesta, kde odišla v predchádzajúcom vyvolaní, s rovnakým * ptr.
Parametre wcstok ()
- str: Ukazovateľ na široký reťazec s nulovým zakončením, ktorý sa má tokenizovať.
- delim: Ukazovateľ na null ukončený široký reťazec, ktorý obsahuje oddeľovače.
- ptr: Ukazovateľ na ukazovateľ na široký znak, ktorý používa wcstok na uloženie svojho vnútorného stavu.
wcstok () Vrátená hodnota
- Funkcia wcstok () vráti ukazovateľ na začiatok nasledujúceho tokenu, ak existuje
- Ak sa nenájdu ďalšie tokeny, vráti hodnotu NULL.
Príklad: Ako funguje funkcia 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; )
Po spustení programu bude výstup:
Tokeny sú: papagáj sova vrabec holub vrána