C ++ wcstok () - C ++ biblioteka standardowa

Funkcja wcstok () w C ++ zwraca następny token w szerokim łańcuchu zakończonym znakiem null.

Funkcja wcstok () jest zdefiniowana w pliku nagłówkowym.

prototyp wcstok ()

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

Funkcja wcstok () przyjmuje trzy argumenty: str, delim i ptr. Ta funkcja znajduje token w szerokim łańcuchu wskazywanym przez str. Ogranicznik wskaźnika wskazuje na znaki separatora.

Tę funkcję można wywołać wiele razy, aby uzyskać tokeny z tego samego szerokiego ciągu. Istnieją dwa przypadki:

  1. Jeśli str nie ma wartości NULL:
    wywołanie wcstok () jest uważane za pierwsze wywołanie tego szerokiego ciągu. Funkcja wyszukuje pierwszy szeroki znak, który nie jest zawarty w ograniczniku. Jeśli nie zostanie znaleziony taki szeroki znak, szeroki ciąg nie zawiera żadnego tokenu. Więc zwracany jest pusty wskaźnik.
    Jeśli taki szeroki znak zostanie znaleziony, funkcja wyszukuje następnie szeroki znak obecny w delim. Jeśli nie zostanie znaleziony separator, str ma tylko jeden token. Jeśli zostanie znaleziony separator, jest on zastępowany przez L ' 0', a wskaźnik do następującego znaku jest przechowywany w * ptr. Na koniec funkcja zwraca wskaźnik na początek tokenu.
  2. Jeśli str ma wartość NULL:
    wywołanie jest traktowane jako kolejne wywołania wcstok, a funkcja jest kontynuowana od miejsca, w którym opuściła w poprzednim wywołaniu, z tym samym * ptr.

wcstok () Parametry

  • str: wskaźnik do szerokiego ciągu zakończonego wartością null do tokenizacji.
  • delim: Wskaźnik do szerokiego ciągu zakończonego znakiem null, który zawiera separatory.
  • ptr: Wskaźnik do wskaźnika do szerokiego znaku, który jest używany przez wcstok do przechowywania swojego stanu wewnętrznego.

wcstok () Wartość zwracana

  • Funkcja wcstok () zwraca wskaźnik do początku następnego tokenu, jeśli taki istnieje
  • Zwraca NULL, jeśli nie znaleziono więcej tokenów.

Przykład: Jak działa funkcja 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 uruchomieniu programu wynik będzie następujący:

 Żetony to: papuga sowa wróbel gołąb wrona

Interesujące artykuły...