C ++ wcstok () - C ++ -kirjasto

C ++: n wcstok () -funktio palauttaa seuraavan tunnuksen tyhjänä päättyneessä leveässä merkkijonossa.

Wcstok () -funktio määritetään otsikkotiedostossa.

wcstok () -prototyyppi

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

Funktiolla wcstok () on kolme argumenttia: str, delim ja ptr. Tämä toiminto löytää tunnuksen laajasta merkkijonosta, johon str. Osoitin rajoittaa osoittimia erottimiin.

Tätä toimintoa voidaan kutsua useita kertoja saada tunnuksia samasta leveästä merkkijonosta. On olemassa kaksi tapausta:

  1. Jos str ei ole NULL:
    Kutsu wcstok (): een katsotaan ensimmäisen kutsuksi tälle leveälle merkkijonolle. Funktio etsii ensimmäisen leveän merkin, jota ei ole delimissä. Jos tällaista laajaa merkkiä ei löydy, leveä merkkijono ei sisällä tunnusta. Joten palautetaan nollaosoitin.
    Jos tällainen leveä merkki löytyy, funktio etsii sieltä leveää merkkiä, joka esiintyy rajauksessa. Jos erotinta ei löydy, str: llä on vain yksi tunnus. Jos erotin löytyy, se korvataan kirjaimella L ' 0' ja osoitin seuraavaan merkkiin tallennetaan * ptr. Lopuksi funktio palauttaa osoittimen tunnuksen alkuun.
  2. Jos str on NULL:
    Kutsu katsotaan myöhemmäksi kutsuksi wcstokille ja toiminto jatkuu sieltä, mihin se jätti edellisen kutsun samalla * ptr: llä.

wcstok () -parametrit

  • str: Nollan päättyneen leveän merkkijonon osoitin tokenoitavaksi.
  • delim: Osoitin nollapäätteiselle leveälle merkkijonolle, joka sisältää erotimet.
  • ptr: Osoitin laajaan merkkiin, jota wcstok käyttää sisäisen tilansa tallentamiseen.

wcstok () Palautusarvo

  • Wcstok () -toiminto palauttaa osoittimen seuraavan tunnuksen alkuun, jos sellaista on
  • Se palauttaa NULL-arvon, jos muita tunnuksia ei löydy.

Esimerkki: Kuinka wcstok () -toiminto toimii?

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

Kun suoritat ohjelmaa, tulos on:

 Tunnukset ovat: papukaija pöllö varpunen kyyhkynen varis

Mielenkiintoisia artikkeleita...