C ++ wcstoull () - Standardna knjižnica C ++

Funkcija wcstoull () v jeziku C ++ razlaga vsebino širokega niza kot nepodpisano celostno številko podane osnove in vrne njeno vrednost kot nepodpisani long long int.

Funkcija wcstoull () nastavi tudi kazalec, ki kaže na prvi znak za zadnjim veljavnim znakom širokega niza, če sploh obstaja, sicer je kazalec nastavljen na nič.

 Za osnovo 10 in širok niz L "29hi $" Veljavni številski del -> 29 Prvi znak za veljavnim številskim delom -> h

Določen je v datoteki glave.

prototip wcstoull ()

 nepodpisana dolga wcstoull (const wchar_t * str, wchar_t ** str_end, int base);

Funkcija wcstoull () za parameter vzame širok niz str, kazalec na široki znak str_end in celoštevilsko vrednost - osnovo.

Nato vsebino širokega niza interpretira kot nepodpisano celostno številko dane osnove in vrne nepodpisano dolgo dolgo int vrednost.

wcstoull () Parametri

  • str: Širok niz, ki ima predstavitev nepodpisanega integralnega števila.
  • str_end: Kazalec na kazalec na širok znak. Vrednost str_end nastavi funkcija na naslednji znak v str za zadnjim veljavnim znakom. Ta parameter je lahko tudi ničelni kazalec, v tem primeru se ne uporablja.
  • osnova: osnova integralne vrednosti. Nabor veljavnih vrednosti za osnovo je (0, 2, 3,…, 35, 36).

wcstoull () Vrnjena vrednost

Funkcija wcstoull () vrne:

  • nepodpisana dolga dolga int vrednost (ki se pretvori iz niza).
  • 0, če ni bilo mogoče izvesti nobene veljavne pretvorbe.

Primer 1: Kako deluje funkcija wcstoull ()?

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

Ko zaženete program, bo rezultat:

 Vrednost niza = 101aa ᚶ Nepodpisana dolga dolga Int vrednost = 101 končni niz = aa ᚶ Vrednost niza = 59 Nepodpisana dolga dolga int vrednost = 59 Končni niz =

Veljavna celoštevilčna vrednost funkcije wcstoull () je sestavljena iz:

  • Izbirni znak + ali -.
  • Predpona 0 za osmiško osnovo (velja samo, če je osnova = 8 ali 0).
  • Predpona 0x ali 0X za šestnajstiško osnovo (velja samo, če je osnova = 16 ali 0).
  • Zaporedje števk in / ali abeced (če je osnova večja od 10).

Če argument na začetku vsebuje znak minus (-), se negativno število implicitno pretvori v nepodpisan long long int tip, ki je pozitivno število.

Veljavne vrednosti za osnovo parametrov so (0, 2, 3,…, 35, 36). Nabor veljavnih številk za osnovo 2 je (0, 1), za osnovo 3 je (0, 1, 2) in tako naprej. Pri osnovah od 11 do 36 veljavne številke vključujejo abecede.

Nabor veljavnih števk za osnovo 11 je (0, 1,…, 9, A, a), za osnovo 12 je (0, 1,…, 9, A, a, B, b) itd.

Primer 2: funkcija wcstoull () z različnimi osnovami

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

Ko zaženete program, bo rezultat:

 311bzϾϿ do Nepodpisanega dolgega dolgega int z bazo-5 = 81 Končni niz = bzϾϿ 311bzϾϿ do Nepodpisanega dolgega dolgega int z bazo-12 = 5351 Končni niz = zϾϿ 311bzϾϿ do Nepodpisanega dolgega dolgega int z bazo-36 = 5087231 Končni niz = ϾϿ

Funkcija wcstoull () prezre vse vodilne presledke, dokler ne najde primarnega znaka, ki ni presledek.

Na splošno veljaven celoštevilčni argument za funkcijo wcstoull () ima naslednjo obliko:

 (presledek) (- | +) (0 | 0x) (alfanumerični znaki)

Nato, začenši s tem znakom, traja čim več znakov, ki tvori veljavno celoštevilsko predstavitev in jih pretvori v nepodpisano dolgo int vrednost. Karkoli je ostalo od niza po zadnjem veljavnem znaku, se prezre in ne vpliva na rezultat.

Primer 3: funkcija wcstoull () za vodenje presledkov in neveljavno pretvorbo

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

Ko zaženete program, bo rezultat:

 205Ϣx do Nepodpisanega dolgega dolgega int z bazo-5 = 10 Končni niz = 5Ϣx xƜz201 do Nepodpisanega dolgega dolgega int z bazo-12 = 0 Končni niz = xƜz201

Če je osnova 0, se številska osnova samodejno določi s pogledom na obliko niza. Če je predpona 0, je osnova osmična (8). Če je predpona 0x ali 0X, je osnova šestnajstiška (16), sicer pa je osnova decimalna (10).

Primer 4: funkcija wcstoull () z osnovo 0

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

Ko zaženete program, bo rezultat:

 0539Ẅ do Nepodpisanega dolgega dolgega int z bazo-0 = 43 Končni niz = 9Ẅ 0xa31 ע do Nepodpisanega dolgega dolgega int z bazo-0 = 2609 Končni niz = ע 119x ؏ do Nepodpisanega dolgega dolgega int z bazo-0 = 119 Končni niz = x ؏

Zanimive Članki...