C ++ wcstoull () - C ++ standardna biblioteka

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

Funkcija wcstoull () 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 wcstoull ()

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

Funkcija wcstoull () 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 long long int vrijednost.

wcstoull () 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).

wcstoull () Povratna vrijednost

Funkcija wcstoull () vraća:

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

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

Kada pokrenete program, izlaz će biti:

 Vrijednost niza = 101aa ᚶ Nepotpisana dugačka dugačka vrijednost = 101 Krajnji niz = aa ᚶ Vrijednost niza = 59 Nepotpisana dugačka dugačka vrijednost = 59 Krajnja žica =

Valjana cijela vrijednost za funkciju wcstoull () 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 long long 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: wcstoull () funkcija 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 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; )

Kada pokrenete program, izlaz će biti:

 311bzϾϿ u Nepodpisani Long Long Int s bazom-5 = 81 Krajnji niz = bzϾϿ 311bzϾϿ u Nepotpisani Long Long Int s bazom-12 = 5351 Kraj String = zϾϿ 311bzϾϿ u Nepotpisani Long Long Int s base-36 = 5087231 Krajnji niz = ϾϿ

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

Općenito, valjani cjelobrojni argument za funkciju wcstoull () 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 wcstoull () za vodeći razmak 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 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; )

Kada pokrenete program, izlaz će biti:

 205Ϣx do Nepodpisanih dugih dugih int s bazom-5 = 10 Završni niz = 5Ϣx xƜz201 do Nepotpisanih dugih dugih int s bazom-12 = 0 Završni niz = 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: wcstoull () funkcija 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 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; )

Kada pokrenete program, izlaz će biti:

 0539Ẅ u Nepodpisani Long Long Int s bazom-0 = 43 Krajnji niz = 9Ẅ 0xa31 ע u Nepotpisani Long Long Int s bazom-0 = 2609 Krajnji niz = ע 119x ؏ u Nepotpisani Long Long Int s bazom-0 = 119 Krajnji niz = x ؏

Zanimljivi članci...