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

Funkcija wcstol () v jeziku C ++ razlaga vsebino širokega niza kot celotno številko podane baze in vrne njeno vrednost kot dolg int.

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

Določen je v datoteki glave.

 Za osnovo 10 in širok niz L "12abc" Veljavni številski del -> 12 Prvi znak za veljavnim številskim delom -> a

prototip wcstol ()

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

Funkcija wcstol () zavzame širok niz, kazalec na širok znak in celoštevilsko vrednost - osnova kot svoj parameter, interpretira vsebino širokega niza kot integralno število dane osnove in vrne dolgo int vrednost.

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

wcstol () Vrnjena vrednost

Funkcija wcstol () vrne:

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

Primer 1: Kako deluje funkcija wcstol ()?

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

Ko zaženete program, bo rezultat:

 Vrednost niza = 101aa ᚶ Long Int vrednost = 101 Končni niz = aa ᚶ Vrednost niza = 59 Long Int vrednost = 59 Končni niz =

Veljavna celoštevilčna vrednost funkcije wcstol () 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 wcstol () 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 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; )

Ko zaženete program, bo rezultat:

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

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

Na splošno veljaven celoštevilčni argument za funkcijo wcstol () 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 wcstol () 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 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; )

Ko zaženete program, bo rezultat:

 205Ϣx do Long Int s base-5 = 10 Končni niz = 5Ϣx xƜz201 do 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 wcstol () z bazo 0

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

Ko zaženete program, bo rezultat:

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

Zanimive Članki...