C ++ wcstoul () - C ++ standardna biblioteka

Funkcija wcstoul () u C ++-u interpretira sadržaj širokog niza kao nepotpisani integralni broj navedene baze i vraća njegovu vrijednost kao nepotpisani dugi int.

Funkcija wcstoul () također postavlja pokazivač koji pokazuje na prvi znak nakon zadnjeg važećeg znaka širokog niza ako postoji, u suprotnom je pokazivač postavljen na nulu.

 Za bazu 10 i široki niz L "29hi $" Važeći numerički dio -> 29 Prvi znak nakon važećeg numeričkog dijela -> h

Definirano je u datoteci zaglavlja.

prototip wcstoul ()

 nepotpisani dugi wcstoul (const wchar_t * str, wchar_t ** str_end, int baza);

Funkcija wcstoul () za svoj parametar uzima široki niz str, pokazivač na široki znak str_end i cjelobrojnu vrijednost - bazu.

Zatim interpretira sadržaj širokog niza kao nepotpisani integralni broj zadane baze i vraća nepotpisanu dugu int vrijednost.

wcstoul () parametri

  • str: Široki niz koji ima prikaz nepotpisanog integralnog broja.
  • str_end: pokazivač na pokazivač na široki znak. Vrijednost str_end funkcija postavlja na sljedeći znak u str nakon zadnjeg važećeg znaka. Ovaj parametar također može biti null pokazivač, u kojem se slučaju ne koristi.
  • baza: Baza integralne vrijednosti. Skup valjanih vrijednosti za bazu je (0, 2, 3,…, 35, 36).

wcstoul () Povratna vrijednost

Funkcija wcstoul () vraća:

  • nepotpisana dugačka vrijednost int (koja se pretvara iz niza).
  • 0 ako se nije mogla izvršiti valjana pretvorba.

Primjer 1: Kako funkcionira 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; )

Kada pokrenete program, izlaz će biti:

 Vrijednost niza = 101aa ᚶ Nepotpisana dugačka Int vrijednost = 101 Krajnji niz = aa ᚶ Vrijednost niza = 59 Nepotpisana dugačka Int vrijednost = 59 Krajnja nit =

Valjana cijela vrijednost za funkciju wcstoul () sastoji se od:

  • Izborni znak + ili -.
  • Prefiks 0 za osminsku bazu (odnosi se samo kada je baza = 8 ili 0).
  • Prefiks 0x ili 0X za heksadecimalnu bazu (odnosi se samo kada je baza = 16 ili 0).
  • Slijed znamenki i / ili abeceda (ako je baza veća od 10).

Ako argument na početku sadrži znak minus (-), negativni se broj implicitno pretvara u nepotpisani dugi int tip koji je pozitivan broj.

Važeće vrijednosti za bazu parametara su (0, 2, 3,…, 35, 36). Skup valjanih znamenki za bazu 2 je (0, 1), za bazu 3 je (0, 1, 2) i tako dalje. Za baze koje počinju od 11 do 36, valjane znamenke uključuju abecedu.

Skup valjanih znamenki za bazu 11 je (0, 1, …, 9, A, a), za bazu 12 je (0, 1, …, 9, A, a, B, b) i tako dalje.

Primjer 2: funkcija wcstoul () s različitim bazama

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

Kada pokrenete program, izlaz će biti:

 311bzϾϿ u Nepotpisani dugi int s bazom-5 = 81 Krajnji niz = bzϾϿ 311bzϾϿ u Nepotpisani dugi int s bazom-12 = 5351 Krajnji niz = zϾϿ 311bzϾϿ u Nepotpisani dugi int s bazom-36 = 5087231 Krajnji niz = ϾϿ

Funkcija wcstoul () zanemaruje sve vodeće razmake dok se ne pronađe primarni znak koji nije razmak.

Općenito, valjani cjelobrojni argument za funkciju wcstoul () ima sljedeći oblik:

 (razmak) (- | +) (0 | 0x) (alfanumerički znakovi)

Zatim, počevši od ovog znaka, potrebno je što više znakova koji čine valjanu cjelobrojnu predstavu i pretvaraju ih u nepotpisanu dugu int vrijednost.

Sve što ostane od niza nakon zadnjeg važećeg znaka, zanemaruje se i nema utjecaja na rezultat.

Primjer 3: funkcija wcstoul () za vodeće razmake i nevaljanu pretvorbu

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

Kada pokrenete program, izlaz će biti:

 205Ϣx do nepotpisanih dugih int s bazom-5 = 10 završnih nizova = 5Ϣx xƜz201 do nepotpisanih dugih int s bazom-12 = 0 završnih nizova = xƜz201

Ako je osnova 0, numerička baza se automatski određuje gledanjem formata niza. Ako je prefiks 0, osnova je osmica (8). Ako je prefiks 0x ili 0X, baza je heksadecimalna (16), inače je baza decimalna (10).

Primjer 4: funkcija wcstoul () s bazom 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; )

Kada pokrenete program, izlaz će biti:

 0539Ẅ u Nepotpisani dugi int s bazom-0 = 43 Krajnji niz = 9Ẅ 0xa31 ע u Nepotpisani dugi int s bazom-0 = 2609 Krajnji niz = ע 119x ؏ u Nepotpisani dugi int s bazom-0 = 119 Krajnji niz = x ؏

Zanimljivi članci...