C ++ wcstok () - C ++ standaardbibliotheek

De functie wcstok () in C ++ retourneert het volgende token in een brede string met null-eindigend.

De functie wcstok () is gedefinieerd in het header-bestand.

wcstok () prototype

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

De functie wcstok () heeft drie argumenten: str, delim en ptr. Deze functie vindt het token in de brede tekenreeks waarnaar wordt verwezen door str. Het aanwijzer-scheidingsteken verwijst naar de scheidingstekens.

Deze functie kan meerdere keren worden aangeroepen om tokens uit dezelfde brede string te verkrijgen. Er zijn twee gevallen:

  1. Als str niet NULL is:
    een aanroep naar wcstok () wordt beschouwd als de eerste aanroep voor die brede string. De functie zoekt naar het eerste brede teken dat niet tussen het scheidingsteken staat. Als zo'n breed teken niet wordt gevonden, bevat de brede tekenreeks geen token. Dus een null-aanwijzer wordt geretourneerd.
    Als zo'n breed teken wordt gevonden, zoekt de functie van daaruit naar een breed teken dat als scheidingsteken aanwezig is. Als er geen scheidingsteken wordt gevonden, heeft str slechts één token. Als er een scheidingsteken wordt gevonden, wordt deze vervangen door L ' 0' en wordt de pointer naar het volgende teken opgeslagen in * ptr. Ten slotte retourneert de functie de aanwijzer naar het begin van het token.
  2. Als str NULL is:
    de aanroep wordt beschouwd als volgende aanroepen van wcstok en de functie gaat verder waar hij was gebleven in de vorige aanroep met dezelfde * ptr.

wcstok () Parameters

  • str: Pointer naar de null-beëindigde brede string om te tokeniseren.
  • delim: Pointer naar de met null beëindigde brede string die de scheidingstekens bevat.
  • ptr: Pointer naar een pointer naar een breed teken dat door wcstok wordt gebruikt om zijn interne status op te slaan.

wcstok () Retourwaarde

  • De functie wcstok () retourneert de aanwijzer naar het begin van het volgende token als die er is
  • Het retourneert NULL als er geen tokens meer worden gevonden.

Voorbeeld: hoe de functie wcstok () werkt?

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

Wanneer u het programma uitvoert, is de uitvoer:

 De lopers zijn: papegaai uil mus duif kraai

Interessante artikelen...