C ++: n wcstoull () -funktio tulkitsee leveän merkkijonon sisällön määritetyn tukiaseman allekirjoittamattomaksi integraaliluvuksi ja palauttaa sen arvon allekirjoittamattomana pitkänä pitkänä int.
Wcstoull () -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 "29hi $" Voimassa oleva numeerinen osa -> 29 Ensimmäinen merkki kelvollisen numeerisen osan jälkeen -> h
Se määritetään otsikkotiedostossa.
wcstoull () prototyyppi
allekirjoittamaton pitkä wcstoull (const wchar_t * str, wchar_t ** str_end, int base);
Wcstoull () -toiminto ottaa parametriksi leveän merkkijonon, osoittimen leveään merkkiin str_end ja kokonaislukuarvopohjan.
Sitten se tulkitsee leveän merkkijonon sisällön allekirjoittamattomaksi integraaliluvuksi tietylle alustalle ja palauttaa allekirjoittamattoman pitkän pitkän int-arvon.
wcstoull () -parametrit
- str: Leveä merkkijono, jolla on allekirjoittamaton kokonaisluku.
- 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).
wcstoull () Palautusarvo
Wcstoull () -funktio palauttaa:
- allekirjoittamaton pitkä pitkä int-arvo (joka muunnetaan merkkijonosta).
- 0, jos kelvollista muunnosta ei voitu suorittaa.
Esimerkki 1: Kuinka wcstoull () -toiminto toimii?
#include #include #include using namespace std; int main() ( setlocale(LC_ALL, "en_US.UTF-8"); wchar_t str1() = L"101aau16b6"; wchar_t str2() = L"59"; wchar_t *end; unsigned long long value; int base = 10; value = wcstoull(str1, &end, base); wcout << L"String value = " << str1 << endl; wcout << L"Unsigned Long Long Int value = " << value << endl; wcout << L"End String = " << end << endl; value = wcstoull(str2, &end, base); wcout << L"String value = " << str2 << endl; wcout << L"Unsigned Long Long Int value = " << value << endl; wcout << L"End String = " << end << endl; return 0; )
Kun suoritat ohjelmaa, tulos on:
Merkkijonoarvo = 101aa ᚶ Allekirjoittamaton pitkä pitkä keskiarvo = 101 Loppumerkkijono = aa ᚶ Merkkijonoarvo = 59 Allekirjoittamaton pitkä pitkä keskiarvo = 59 Loppumerkkijono =
Funktion wcstoull () 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).
Jos argumentti sisältää miinusmerkin (-) alussa, negatiivinen luku muunnetaan implisiittisesti allekirjoittamattomaksi pitkäksi pitkäksi int-tyypiksi, joka on positiivinen luku.
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: wcstoull () -funktio, jolla on erilaiset 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 Unsigned Long Long Int with base-5 = " << wcstoull(str, &end, 5) << endl; wcout << L"End String = " << end << endl << endl; wcout << str << L" to Unsigned Long Long Int with base-12 = " << wcstoull(str, &end, 12) << endl; wcout << L"End String = " << end << endl << endl; wcout << str << L" to Unsigned Long Long Int with base-36 = " << wcstoull(str, &end, 36) << endl; wcout << L"End String = " << end << endl << endl; return 0; )
Kun suoritat ohjelmaa, tulos on:
311bzϾϿ - allekirjoittamaton pitkä pitkä keskiarvo-5 = 81 loppumerkkijono = bzϾϿ 311bzϾϿ - allekirjoittamaton pitkä pitkä keskikoko pohja-12 = 5351 lopun merkkijono = 5351 lopullinen merkkijono = zϾϿ 311bzϾϿ - merkitsevä pitkä pitkä keskikokoinen pohja-36 = 5087231 merkkijono = ϾϿ
Wcstoull () -funktio jättää huomiotta kaikki johtavat välilyönnin merkit, kunnes ensisijainen ei-välilyönti-merkki löytyy.
Yleensä wcstoull () -funktion kelvollinen kokonaisluku-argumentti on seuraavassa muodossa:
(välilyönti) (- | +) (0 | 0x) (aakkosnumeeriset merkit)
Sitten tästä merkistä alkaen tarvitaan mahdollisimman monta merkkiä, joka muodostaa kelvollisen kokonaislukuesityksen ja muuntaa ne allekirjoittamattomaksi 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: wcstoull () -toiminto välilyönnin ja virheellisen muunnoksen johtamiseen
#include #include #include using namespace std; int main() ( setlocale(LC_ALL, "en_US.UTF-8"); wchar_t *end; wcout << L" 205u03e2x to Unsigned Long Long Int with base-5 = " << wcstoull(L" 205u03e2x", &end, 5) << endl; wcout << L"End String = " << end << endl << endl; wcout << L"xu019cz201 to Unsigned Long Long Int with base-12 = " << wcstoull(L"xu019cz201", &end, 12) << endl; wcout << L"End String = " << end << endl << endl; return 0; )
Kun suoritat ohjelmaa, tulos on:
205Ϣx - merkitsemätön pitkä pitkä keskiarvo-5 = 10 päätemerkkijono = 5Ϣx xƜz201 - merkitsemätön pitkä pitkä keskikoko, pohja-12 = 0 lopullinen merkkijono = 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: wcstoull () -funktio perustan 0 kanssa
#include #include #include using namespace std; int main() ( setlocale(LC_ALL, "en_US.UTF-8"); wchar_t *end; wcout << L"0539u1e84 to Unsigned Long Long Int with base-0 = " << wcstoull(L"0539u1e84", &end, 0) << endl; wcout << L"End String = " << end << endl << endl; wcout << L"0xa31u05e2 to Unsigned Long Long Int with base-0 = " << wcstoull(L"0xa31u05e2", &end, 0) << endl; wcout << L"End String = " << end << endl << endl; wcout << L"119xu060f to Unsigned Long Long Int with base-0 = " << wcstoull(L"119xu060f", &end, 0) << endl; wcout << L"End String = " << end << endl << endl; return 0; )
Kun suoritat ohjelmaa, tulos on:
0539Ẅ - Unsigned Long Long Int with base-0 = 43 End string = 9Ẅ 0xa31 ע to unssigned Long Long Int with base-0 = 2609 End String = ע 119x ؏ to All-Long Long Int Int with base-0 = 119 End string = x ؏