Funkcija wcstoul () v jeziku C ++ razlaga vsebino širokega niza kot nepodpisano celostno številko podane osnove in vrne njeno vrednost kot nepodpisani dolgi int.
Funkcija wcstoul () 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 wcstoul ()
nepodpisan dolg wcstoul (const wchar_t * str, wchar_t ** str_end, int base);
Funkcija wcstoul () 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 int vrednost.
wcstoul () 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).
wcstoul () Vrnjena vrednost
Funkcija wcstoul () vrne:
- nepodpisana dolga int vrednost (ki se pretvori iz niza).
- 0, če ni bilo mogoče izvesti nobene veljavne pretvorbe.
Primer 1: Kako deluje funkcija wcstoul ()?
#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 value; int base = 10; value = wcstoul(str1, &end, base); wcout << L"String value = " << str1 << endl; wcout << L"Unsigned Long Int value = " << value << endl; wcout << L"End String = " << end << endl; value = wcstoul(str2, &end, base); wcout << L"String value = " << str2 << endl; wcout << L"Unsigned Long Int value = " << value << endl; wcout << L"End String = " << end << endl; return 0; )
Ko zaženete program, bo rezultat:
Vrednost niza = 101aa ᚶ Nepodpisana dolga Int vrednost = 101 Končni niz = aa ᚶ Vrednost niza = 59 Nepodpisana dolga int vrednost = 59 Končni niz =
Veljavna celoštevilčna vrednost funkcije wcstoul () 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 dolg tip int, 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 wcstoul () 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 Int with base-5 = " << wcstoul(str, &end, 5) << endl; wcout << L"End String = " << end << endl << endl; wcout << str << L" to Unsigned Long Int with base-12 = " << wcstoul(str, &end, 12) << endl; wcout << L"End String = " << end << endl << endl; wcout << str << L" to Unsigned Long Int with base-36 = " << wcstoul(str, &end, 36) << endl; wcout << L"End String = " << end << endl << endl; return 0; )
Ko zaženete program, bo rezultat:
311bzϾϿ do Nepodpisanega dolgega int z bazo-5 = 81 Končni niz = bzϾϿ 311bzϾϿ do Nepodpisanega dolgega int z bazo-12 = 5351 Končni niz = zϾϿ 311bzϾϿ do Nepodpisanega dolgega int z bazo-36 = 5087231 Končni niz = ϾϿ
Funkcija wcstoul () prezre vse vodilne presledke, dokler ne najde primarnega znaka, ki ni presledek.
Na splošno veljaven celoštevilčni argument za funkcijo wcstoul () 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 wcstoul () 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 Int with base-5 = " << wcstoul(L" 205u03e2x", &end, 5) << endl; wcout << L"End String = " << end << endl << endl; wcout << L"xu019cz201 to Unsigned Long Int with base-12 = " << wcstoul(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 Int z base-5 = 10 Končni niz = 5Ϣx xƜz201 do Nepodpisanega Long Int z base-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 wcstoul () 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 Int with base-0 = " << wcstoul(L"0539u1e84", &end, 0) << endl; wcout << L"End String = " << end << endl << endl; wcout << L"0xa31u05e2 to Unsigned Long Int with base-0 = " << wcstoul(L"0xa31u05e2", &end, 0) << endl; wcout << L"End String = " << end << endl << endl; wcout << L"119xu060f to Unsigned Long Int with base-0 = " << wcstoul(L"119xu060f", &end, 0) << endl; wcout << L"End String = " << end << endl << endl; return 0; )
Ko zaženete program, bo rezultat:
0539Ẅ do Nepodpisanega dolgega int z bazo-0 = 43 Končni niz = 9Ẅ 0xa31 ע do Nepodpisanega dolgega int z bazo-0 = 2609 Končni niz = ע 119x ؏ do Nepodpisanega dolgega int z bazo-0 = 119 Končni niz = x ؏