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

Funkcija wcstol () C ++ interpretē plašas virknes saturu kā norādītās bāzes neatņemamu skaitli un atgriež tās vērtību kā garu int.

Funkcija wcstol () arī iestata 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.

Tas ir definēts galvenes failā.

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

wcstol () prototips

 garš wcstol (const wchar_t * str, wchar_t ** str_end, int bāze);

Funkcijā wcstol () kā parametrs tiek ņemta plaša virkne, rādītājs uz plašu rakstzīmi un vesela skaitļa vērtība - bāze, plašās virknes saturs tiek interpretēts kā dotās bāzes neatņemams skaitlis un tiek atgriezta gara int vērtība.

wcstol () parametri

  • str: plaša virkne ar neatņemama 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. Bāzes derīgo vērtību kopa ir (0, 2, 3,…, 35, 36).

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

Funkcija wcstol () atgriež:

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

1. piemērs: Kā darbojas wcstol () 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; long value; int base = 10; value = wcstol(str1, &end, base); wcout << L"String value = " << str1 << endl; wcout << L"Long Int value = " << value << endl; wcout << L"End String = " << end << endl; value = wcstol(str2, &end, base); wcout << L"String value = " << str2 << endl; wcout << L"Long Int value = " << value << endl; wcout << L"End String = " << end << endl; return 0; )

Palaidot programmu, izeja būs:

 Virknes vērtība = 101aa ᚶ Long Int vērtība = 101 Beigas virkne = aa ᚶ Virknes vērtība = 59 Long Int vērtība = 59 Beigas virkne =

Funkcijas wcstol () 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).

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 wcstol () 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 Long Int with base-5 = " << wcstol(str, &end, 5) << endl; wcout << L"End String = " << end << endl << endl; wcout << str << L" to Long Int with base-5 = " << wcstol(str, &end, 12) << endl; wcout << L"End String = " << end << endl << endl; wcout << str << L" to Long Int with base-5 = " << wcstol(str, &end, 36) << endl; wcout << L"End String = " << end << endl << endl; return 0; )

Palaidot programmu, izeja būs:

 311bzϾϿ līdz Long Int ar bāzes-5 = 81 beigu virkni = bzϾϿ 311bzϾϿ līdz Long Int ar base-5 = 5351 gala virkni = zϾϿ 311bzϾϿ līdz Long Int ar pamatu-5 = 5087231 End String = ϾϿ

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

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

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

Tad, sākot ar šo rakstzīmi, ir nepieciešams pēc iespējas vairāk rakstzīmju, kas veido derīgu vesela skaitļa attēlojumu un pārveido tos par 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 wcstol (), 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 Long Int with base-5 = " << wcstol(L" 205u03e2x", &end, 5) << endl; wcout << L"End String = " << end << endl << endl; wcout << L"xu019cz201 to Long Int with base-12 = " << wcstol(L"xu019cz201", &end, 12) << endl; wcout << L"End String = " << end << endl << endl; return 0; )

Palaidot programmu, izeja būs:

 205Ϣx līdz Long Int ar bāzes-5 = 10 beigu virkni = 5Ϣx xƜz201 līdz Long Int ar bāzes-12 = 0 beigu virkni = 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 wcstol () 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 Long Int with base-0 = " << wcstol(L"0539u1e84", &end, 0) << endl; wcout << L"End String = " << end << endl << endl; wcout << L"0xa31u05e2 to Long Int with base-0 = " << wcstol(L"0xa31u05e2", &end, 0) << endl; wcout << L"End String = " << end << endl << endl; wcout << L"119xu060f to Long Int with base-0 = " << wcstol(L"119xu060f", &end, 0) << endl; wcout << L"End String = " << end << endl << endl; return 0; )

Palaidot programmu, izeja būs:

 0539Ẅ līdz Long Int ar bāzes-0 = 43 beigu virkni = 9Ẅ 0xa31 ע līdz Long Int ar bāzes-0 = 2609 beigu virkni = ע 119x ؏ līdz Long Int ar bāzes-0 = 119 gala virkni = x ؏

Interesanti raksti...