C ++ wcstoll () - C ++ - vakiokirjasto

C ++: n wcstoll () -funktio tulkitsee leveän merkkijonon sisällön määritetyn perustan integraaliluvuksi ja palauttaa sen arvon pitkäksi pitkäksi int.

Wcstoll () -toiminto asettaa myös osoittimen osoittamaan ensimmäistä merkkiä leveän merkkijonon viimeisen kelvollisen merkin jälkeen, jos sellaista on, muuten osoitin asetetaan nollaksi.

 Pohjalle 10 ja leveälle merkkijonolle L "31ÛÕÕ" Voimassa oleva numeerinen osa -> 31 Ensimmäinen merkki voimassa olevan numeerisen osan jälkeen -> Û

Se määritetään otsikkotiedostossa.

wcstoll () -prototyyppi

 pitkä pitkä wcstoll (const wchar_t * str, wchar_t ** str_end, int base);

Wcstoll () -funktio ottaa parametriksi leveän merkkijonon, osoittimen leveään merkkiin str_end ja kokonaislukuarvopohjan.

Sitten se tulkitsee leveän merkkijonon sisällön annetun perustan kokonaisluvuksi ja palauttaa pitkän pitkän int-arvon.

wcstoll () -parametrit

  • str: Laaja merkkijono, jolla on integraaliluku.
  • str_end: Osoitin laajaan merkkiin. Str_end-arvon asettaa funktio seuraavalle merkille str: ssä viimeisen kelvollisen merkin jälkeen. Tämä parametri voi olla myös nollaosoitin, jolloin sitä ei käytetä.
  • base: Integraaliarvon pohja. Pohjan kelvollisten arvojen joukko on (0, 2, 3,…, 35, 36).

wcstoll () Palautusarvo

Wcstoll () -funktio palauttaa:

  • pitkä pitkä int-arvo (joka muunnetaan merkkijonosta).
  • 0, jos kelvollista muunnosta ei voitu suorittaa.

Esimerkki 1: Kuinka wcstoll () -toiminto toimii?

 #include #include #include using namespace std; int main() ( setlocale(LC_ALL, "en_US.UTF-8"); wchar_t str1() = L"41u0166u0124xx"; wchar_t str2() = L"127"; wchar_t *end; long long value; int base = 10; value = wcstoll(str1, &end, base); wcout << L"String value = " << str1 << endl; wcout << L"Long Long Int value = " << value << endl; wcout << L"End String = " << end << endl; value = wcstoll(str2, &end, base); wcout << L"String value = " << str2 << endl; wcout << L"Long Long Int value = " << value << endl; wcout << L"End String = " << end << endl; return 0; )

Kun suoritat ohjelmaa, tulos on:

 Merkkijonoarvo = 41ŦĤxx Long Long Int -arvo = 41 End-merkkijono = ŦĤxx String -arvo = 127 Long Long Int -arvo = 127 End String =

Wcstoll () -funktion kelvollinen kokonaisluku koostuu:

  • Valinnainen + tai - merkki.
  • Etuliite 0 oktaalialustalle (pätee vain, kun perus = 8 tai 0).
  • Etuliite 0x tai 0X heksadesimaalitasolle (pätee vain, kun perusarvo = 16 tai 0).
  • Numerosarja ja / tai aakkoset (jos pohja on suurempi kuin 10).

Parametrikannan kelvolliset arvot ovat (0, 2, 3,…, 35, 36). Tukiaseman 2 kelvollisten numeroiden joukko on (0, 1), tukiasemalle 3 on (0, 1, 2) ja niin edelleen. Alustojen 11-36 alussa voimassa olevat numerot sisältävät aakkoset.

Tukiaseman 11 kelvollisten numeroiden joukko on (0, 1,…, 9, A, a), tukiasemalle 12 on (0, 1,…, 9, A, a, B, b) ja niin edelleen.

Esimerkki 2: wcstoll () -funktio, jolla on eri emäkset

 #include #include #include using namespace std; int main() ( setlocale(LC_ALL, "en_US.UTF-8"); wchar_t *end; wchar_t str() = L"311bzu03feu03ff"; wcout << str << L" to Long Long Int with base-5 = " << wcstoll(str, &end, 5) << endl; wcout << L"End String = " << end << endl << endl; wcout << str << L" to Long Long Int with base-12 = " << wcstoll(str, &end, 12) << endl; wcout << L"End String = " << end << endl << endl; wcout << str << L" to Long Long Int with base-36 = " << wcstoll(str, &end, 36) << endl; wcout << L"End String = " << end << endl << endl; return 0; )

Kun suoritat ohjelmaa, tulos on:

 311bzϾϿ - Pitkä pitkä Int kanssa base-5 = 81 Loppu merkkijono = bzϾϿ 311bzϾϿ - Long Long Int Int kanssa Base-12 = 5351 Loppu merkkijono = zϾϿ 311bzϾϿ - Long Long Int Int kanssa base-5 = 5087231 Loppu merkkijono = ϾϿ

Wcstoll () -toiminto jättää huomiotta kaikki johtavat välilyönnin merkit, kunnes ensisijainen ei-tyhjämerkki löytyy.

Yleensä wcstoll () -funktion kelvollisella kokonaisluvun argumentilla on seuraava muoto:

 (välilyönti) (- | +) (0 | 0x) (aakkosnumeeriset merkit)

Sitten tästä merkistä alkaen tarvitaan mahdollisimman monta merkkiä, jotka muodostavat kelvollisen kokonaislukuesityksen ja muuntaa ne pitkäksi int-arvoksi.

Merkkijonosta jäljellä oleva tieto viimeisen kelvollisen merkin jälkeen jätetään huomiotta, eikä sillä ole vaikutusta tulokseen.

Esimerkki 3: wcstoll () -toiminto johtaa tyhjään tilaan ja virheelliseen muunnokseen

 #include #include #include using namespace std; int main() ( setlocale(LC_ALL, "en_US.UTF-8"); wchar_t *end; wcout << L" 205u03e2x to Long Long Int with base-5 = " << wcstoll(L" 205u03e2x", &end, 5) << endl; wcout << L"End String = " << end << endl << endl; wcout << L"xu019cz201 to Long Long Int with base-12 = " << wcstoll(L"xu019cz201", &end, 12) << endl; wcout << L"End String = " << end << endl << endl; return 0; )

Kun suoritat ohjelmaa, tulos on:

 205Ϣx - pitkä pitkä int kanssa base-5 = 10 päätemerkkijono = 5Ϣx xƜz201 - pitkä pitkä int kanssa base-12 = 0 end string = xƜz201

Jos perusta on 0, numeerinen perusta määritetään automaattisesti merkkijonon muotoa tarkastelemalla. Jos etuliite on 0, pohja on oktaali (8). Jos etuliite on 0x tai 0X, perusta on heksadesimaali (16), muuten perusta on desimaali (10).

Esimerkki 4: wcstoll () -funktio, jonka pohja on 0

 #include #include #include using namespace std; int main() ( setlocale(LC_ALL, "en_US.UTF-8"); wchar_t *end; wcout << L"0539u1e84 to Long Long Int with base-0 = " << wcstoll(L"0539u1e84", &end, 0) << endl; wcout << L"End String = " << end << endl << endl; wcout << L"0xa31u05e2 to Long Long Int with base-0 = " << wcstoll(L"0xa31u05e2", &end, 0) << endl; wcout << L"End String = " << end << endl << endl; wcout << L"119xu060f to Long Long Int with base-0 = " << wcstoll(L"119xu060f", &end, 0) << endl; wcout << L"End String = " << end << endl << endl; return 0; )

Kun suoritat ohjelmaa, tulos on:

 0539Ẅ - Long Long Int with base-0 = 43 End string = 9Ẅ 0xa31 ע to Long Long Int with base-0 = 2609 End string = = 119x ؏ to Long Long Int with base-0 = 119 End string = x ؏

Mielenkiintoisia artikkeleita...