C ++ wcstoull () - C ++ standarta bibliotēka

Funkcija wcstoull () C ++ interpretē plašas virknes saturu kā neparakstītu integrētās norādītās bāzes numuru un atgriež tās vērtību kā neparakstītu garu garu int.

Funkcija wcstoull () arī nosaka rādītāju, kas norāda uz pirmo rakstzīmi pēc pēdējās derīgās plašās virknes rakstzīmes, ja tāda ir, pretējā gadījumā rādītājs tiek iestatīts uz nulli.

 10. pamatnei un platajai virknei L "29hi $" Derīga skaitliskā daļa -> 29 Pirmā rakstzīme pēc derīgas skaitliskās daļas -> h

Tas ir definēts galvenes failā.

wcstoull () prototips

 neparakstīts garš wcstoull (const wchar_t * str, wchar_t ** str_end, int bāze);

Funkcijas wcstoull () parametrs ir plaša virkne str, rādītājs uz plašu rakstzīmi str_end un vesela skaitļa vērtība - bāze.

Pēc tam tas interpretē plašas virknes saturu kā neparakstītu integrētās bāzes skaitli un atgriež neparakstītu garo garo int vērtību.

wcstoull () parametri

  • str: plaša virkne ar neparakstīta integrāla skaitļa attēlojumu.
  • str_end: Norāde uz plaša rakstura rādītāju. Str_end vērtību funkcija iestata nākamajai rakstzīmei str pēc pēdējās derīgās rakstzīmes. Šis parametrs var būt arī nulles rādītājs, tādā gadījumā tas netiek izmantots.
  • bāze: integrālās vērtības bāze. Derīgo vērtību kopa bāzei ir (0, 2, 3,…, 35, 36).

wcstoull () Atgriešanās vērtība

Funkcija wcstoull () atgriež:

  • neparakstīta garā garā int vērtība (kas tiek pārveidota no virknes).
  • 0, ja nevarēja veikt derīgu konversiju.

1. piemērs: Kā darbojas wcstoull () funkcija?

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

Palaidot programmu, izeja būs:

 Virknes vērtība = 101aa ᚶ neparakstīta gara gara vidējā vērtība = 101 beigu virkne = aa ᚶ virknes vērtība = 59 neparakstīta gara gara vidējā vērtība = 59 beigu virkne =

Funkcijas wcstoull () derīga veselā skaitļa vērtība sastāv no:

  • Papildu + vai - zīme.
  • Oktāla pamatnes prefikss 0 (attiecas tikai tad, ja bāze = 8 vai 0).
  • Heksadecimālās bāzes prefikss 0x vai 0X (attiecas tikai tad, ja bāze = 16 vai 0).
  • Ciparu un / vai alfabētu secība (ja bāze ir lielāka par 10).

Ja argumenta sākumā ir mīnus zīme (-), negatīvais skaitlis netieši tiek pārveidots par neparakstītu garu garu int tipu, kas ir pozitīvs skaitlis.

Parametra bāzes derīgās vērtības ir (0, 2, 3,…, 35, 36). Derīgo ciparu kopa pamatnei 2 ir (0, 1), pamatnei 3 ir (0, 1, 2) un tā tālāk. Bāzēm, kas sākas no 11 līdz 36, derīgos ciparos ir alfabēti.

Derīgo ciparu kopa pamatnei 11 ir (0, 1,…, 9, A, a), pamatnei 12 ir (0, 1,…, 9, A, a, B, b) un tā tālāk.

2. piemērs: funkcija wcstoull () ar dažādām bāzēm

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

Palaidot programmu, izeja būs:

 311bzϾϿ uz neparakstītu garu garu vidējo ar bāzes-5 = 81 gala virkni = bzϾϿ 311bzϾϿ uz neparakstītu garu garu vidējo vērtību ar pamatu-12 = 5351 gala virkni = zϾϿ 311 bzϾϿ līdz neparakstītu garu garu vidējo vērtību ar pamatu-36 = 5087231 gala virkni = ϾϿ

Funkcija wcstoull () ignorē visas vadošās atstarpes rakstzīmes, līdz tiek atrasts primārais raksturs, kas nav atstarpes.

Parasti derīgam veselā skaitļa argumentam wcstoull () funkcijai ir šāda forma:

 (atstarpe) (- | +) (0 | 0x) (burtciparu rakstzīmes)

Tad, sākot ar šo rakstzīmi, nepieciešams pēc iespējas vairāk rakstzīmju, kas veido derīgu vesela skaitļa attēlojumu un pārveido tos par neparakstītu garu int vērtību. Tas, kas paliek pāri no virknes pēc pēdējās derīgās rakstzīmes, tiek ignorēts un neietekmē rezultātu.

3. piemērs: funkcija wcstoull (), lai vadītu atstarpi un nederīgu reklāmguvumu

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

Palaidot programmu, izeja būs:

 205Ϣx uz neparakstītu garu garu vidējo ar bāzes-5 = 10 beigu virkni = 5Ϣx xƜz201 līdz neparakstītu garu garu vidējo vērtību ar pamatu-12 = 0 beigu virkne = xƜz201

Ja bāze ir 0, skaitliskā bāze tiek noteikta automātiski, aplūkojot virknes formātu. Ja prefikss ir 0, pamats ir oktāls (8). Ja prefikss ir 0x vai 0X, bāze ir heksadecimālā (16), pretējā gadījumā bāze ir decimāldaļa (10).

4. piemērs: funkcija wcstoull () ar bāzi 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; )

Palaidot programmu, izeja būs:

 0539Ẅ līdz neparakstītam garam garam vidējam ar bāzes-0 = 43 gala virkni = 9Ẅ 0xa31

Interesanti raksti...