C ++ wcstok () - C ++ Standardbibliotek

Funktionen wcstok () i C ++ returnerer det næste token i en null-afsluttet bred streng.

Funktionen wcstok () er defineret i headerfilen.

wcstok () prototype

 wchar_t * wcstok (wchar_t * str, const wchar_t * afgrænsning, wchar_t ** ptr);

Funktionen wcstok () tager tre argumenter: str, afgrænsning og ptr. Denne funktion finder symbolet i den brede streng, som str. Markøren afgrænser peger på skilletegnene.

Denne funktion kan kaldes flere gange for at få tokens fra den samme brede streng. Der er to tilfælde:

  1. Hvis str ikke er NULL:
    Et opkald til wcstok () betragtes som det første kald for den brede streng. Funktionen søger efter det første brede tegn, der ikke er indeholdt i afgrænsning. Hvis der ikke findes et sådant bredt tegn, indeholder den brede streng ikke noget token. Så en nul pointer returneres.
    Hvis en sådan bred karakter findes, søger funktionen derfra efter et bredt tegn, der er til stede i afgrænsning. Hvis der ikke findes nogen separator, har str kun et token. Hvis der findes en separator, erstattes den af ​​L ' 0', og markøren til følgende tegn er gemt i * ptr. Endelig returnerer funktionen markøren til begyndelsen af ​​tokenet.
  2. Hvis str er NULL:
    Opkaldet betragtes som efterfølgende opkald til wcstok, og funktionen fortsætter fra det sted, hvor den forlod i tidligere indkaldelse med den samme * ptr.

wcstok () Parametre

  • str: Markør til null afsluttet bred streng for at tokenize.
  • afgrænsning: Markør til den null-afsluttede brede streng, der indeholder separatorerne.
  • ptr: Markør til en markør til et bredt tegn, der bruges af wcstok til at gemme sin interne tilstand.

wcstok () Returværdi

  • Funktionen wcstok () returnerer markøren til begyndelsen af ​​næste token, hvis der er nogen
  • Det returnerer NULL, hvis der ikke findes flere tokens.

Eksempel: Hvordan fungerer wcstok () -funktionen?

 #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; )

Når du kører programmet, vil output være:

 Poletterne er: papegøjeugle, spurve due krage

Interessante artikler...