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

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

Funkcija wcstoul () 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ā.

wcstoul () prototips

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

Funkcija wcstoul () kā parametrs ņem plašu virkni str, rādītāju uz plašu rakstzīmi str_end un veselu skaitli - bāzi.

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

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

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

Funkcija wcstoul () atgriež:

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

1. piemērs: Kā darbojas wcstoul () 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 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; )

Palaidot programmu, izeja būs:

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

Funkcijas wcstoul () 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 garā 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 wcstoul () 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 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; )

Palaidot programmu, izeja būs:

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

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

Parasti derīgam veselā skaitļa argumentam wcstoul () 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 wcstoul (), 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 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; )

Palaidot programmu, izeja būs:

 205Ϣx uz neparakstītu garu vidējo ar bāzes-5 = 10 beigu virkni = 5Ϣx xƜz201 līdz neparakstītu garo 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 wcstoul () ar 0 bāzi

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

Palaidot programmu, izeja būs:

 0539Ẅ uz neparakstītu garu vidējo ar bāzes-0 = 43 beigu virkni = 9Ẅ 0xa31

Interesanti raksti...