C ++ wcstoll () - Standardna knjižnica C ++

Funkcija wcstoll () v jeziku C ++ razlaga vsebino širokega niza kot celotno številko podane osnove in vrne njeno vrednost kot long long int.

Funkcija wcstoll () nastavi tudi kazalec, ki kaže na prvi znak za zadnjim veljavnim znakom širokega niza, če sploh obstaja, sicer je kazalec nastavljen na nič.

 Za osnovo 10 in širok niz L "31ÛÕÕ" Veljavni številski del -> 31 Prvi znak za veljavnim številskim delom -> Û

Določen je v datoteki glave.

prototip wcstoll ()

 dolg dolg wcstoll (const wchar_t * str, wchar_t ** str_end, int osnova);

Funkcija wcstoll () za parameter vzame širok niz str, kazalec na široki znak str_end in celoštevilsko vrednost - osnovo.

Nato vsebino širokega niza interpretira kot integralno število dane osnove in vrne dolgo dolgo int vrednost.

wcstoll () parametri

  • str: Širok niz z upodobitvijo integralnega števila.
  • str_end: Kazalec na kazalec na širok znak. Vrednost str_end nastavi funkcija na naslednji znak v str za zadnjim veljavnim znakom. Ta parameter je lahko tudi ničelni kazalec, v tem primeru se ne uporablja.
  • osnova: osnova integralne vrednosti. Nabor veljavnih vrednosti za osnovo je (0, 2, 3,…, 35, 36).

wcstoll () Vrnjena vrednost

Funkcija wcstoll () vrne:

  • dolga dolga vrednost int (ki se pretvori iz niza).
  • 0, če ni bilo mogoče izvesti nobene veljavne pretvorbe.

Primer 1: Kako deluje funkcija wcstoll ()?

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

Ko zaženete program, bo rezultat:

 Vrednost niza = 41ŦĤxx Long Long Int vrednost = 41 Končni niz = ŦĤxx Vrednost niza = 127 Long Long Int vrednost = 127 End String =

Veljavna celoštevilčna vrednost za funkcijo wcstoll () je sestavljena iz:

  • Izbirni znak + ali -.
  • Predpona 0 za osmiško osnovo (velja samo, če je osnova = 8 ali 0).
  • Predpona 0x ali 0X za šestnajstiško osnovo (velja samo, če je osnova = 16 ali 0).
  • Zaporedje števk in / ali abeced (če je osnova večja od 10).

Veljavne vrednosti za osnovo parametrov so (0, 2, 3,…, 35, 36). Nabor veljavnih številk za osnovo 2 je (0, 1), za osnovo 3 je (0, 1, 2) in tako naprej. Pri osnovah od 11 do 36 veljavne številke vključujejo abecede.

Nabor veljavnih števk za osnovo 11 je (0, 1,…, 9, A, a), za osnovo 12 je (0, 1,…, 9, A, a, B, b) itd.

Primer 2: funkcija wcstoll () z različnimi bazami

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

Ko zaženete program, bo rezultat:

 311bzϾϿ do Long Long Int s base-5 = 81 Končni niz = bzϾϿ 311bzϾϿ do Long Long Int z base-12 = 5351 Končni niz = zϾϿ 311bzϾϿ do Long Long Int z base-36 = 5087231 Končni niz = ϾϿ

Funkcija wcstoll () prezre vse vodilne presledke, dokler ne najde primarnega znaka, ki ni presledek.

Na splošno veljaven celoštevilčni argument za funkcijo wcstoll () ima naslednjo obliko:

 (presledek) (- | +) (0 | 0x) (alfanumerični znaki)

Nato, začenši s tem znakom, traja čim več znakov, ki tvori veljavno celoštevilsko predstavitev in jih pretvori v dolgo int vrednost.

Karkoli je ostalo od niza po zadnjem veljavnem znaku, se prezre in ne vpliva na rezultat.

Primer 3: funkcija wcstoll () za vodenje presledkov in neveljavno pretvorbo

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

Ko zaženete program, bo rezultat:

 205Ϣx do Long Long Int s base-5 = 10 Končni niz = 5Ϣx xƜz201 do Long Long Int z base-12 = 0 Končni niz = xƜz201

Če je osnova 0, se številska osnova samodejno določi s pogledom na obliko niza. Če je predpona 0, je osnova osmična (8). Če je predpona 0x ali 0X, je osnova šestnajstiška (16), sicer pa je osnova decimalna (10).

Primer 4: funkcija wcstoll () z osnovo 0

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

Ko zaženete program, bo rezultat:

 0539Ẅ do Long Long Int s base-0 = 43 Končni niz = 9Ẅ 0xa31 ע do Long Long Int s base-0 = 2609 Končni niz = ע 119x ؏ do Long Long Int z base-0 = 119 Končni niz = x ؏

Zanimive Članki...