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

Funkcija wcstoll () 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 garu int.

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

 10. pamatnei un platajai virknei L "31ÛÕÕ" Derīgā skaitliskā daļa -> 31 Pirmā rakstzīme pēc derīgās skaitliskās daļas -> Û

Tas ir definēts galvenes failā.

wcstoll () prototips

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

Funkcijas wcstoll () 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 plašās virknes saturu interpretē kā dotās bāzes neatņemamu skaitli un atgriež garu garu int vērtību.

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

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

Funkcija wcstoll () atgriež:

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

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

 #include #include #include using namespace std; int main() ( setlocale(LC_ALL, "en_US.UTF-8"); wchar_t str1() = L"41u0166u0124xx"; wchar_t str2() = L"127"; wchar_t *end; long long value; int base = 10; value = wcstoll(str1, &end, base); wcout << L"String value = " << str1 << endl; wcout << L"Long Long Int value = " << value << endl; wcout << L"End String = " << end << endl; value = wcstoll(str2, &end, base); wcout << L"String value = " << str2 << endl; wcout << L"Long Long Int value = " << value << endl; wcout << L"End String = " << end << endl; return 0; )

Palaidot programmu, izeja būs:

 Virknes vērtība = 41ŦĤxx Long Long Int vērtība = 41 End virkne = ŦĤxx string vērtība = 127 Long Long Int vērtība = 127 End virkne =

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

Palaidot programmu, izeja būs:

 No 311bzϾϿ līdz garai garai int ar pamatu-5 = 81 gala virkne = bzϾϿ 311bzϾϿ līdz garai garai vidējai vērtībai ar pamatu-12 = 5351 gala virkne = zϾϿ 311bzϾϿ līdz garai garai vidējai vērtībai ar pamatu-36 = 5087231 gala virkne = ϾϿ

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

Parasti derīgam veselā skaitļa argumentam wcstoll () 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 wcstoll (), 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 Long Int with base-5 = " << wcstoll(L" 205u03e2x", &end, 5) << endl; wcout << L"End String = " << end << endl << endl; wcout << L"xu019cz201 to Long Long Int with base-12 = " << wcstoll(L"xu019cz201", &end, 12) << endl; wcout << L"End String = " << end << endl << endl; return 0; )

Palaidot programmu, izeja būs:

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

Palaidot programmu, izeja būs:

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

Interesanti raksti...