C ++ wcstol () - C ++ Standardbibliotek

Funktionen wcstol () i C ++ tolkar innehållet i en bred sträng som ett integrerat nummer i den angivna basen och returnerar dess värde som ett långt int.

Funktionen wcstol () ställer också in en pekare för att peka på det första tecknet efter den sista giltiga tecknet i den breda strängen om det finns någon, annars är pekaren satt till null.

Det definieras i rubrikfilen.

 För bas 10 och bredsträngen L "12abc" Giltig numerisk del -> 12 Första tecknet efter giltig numerisk del -> a

wcstol () prototyp

 lång wcstol (const wchar_t * str, wchar_t ** str_end, int-bas);

Funktionen wcstol () tar en bred sträng, en pekare till ett brett tecken och ett heltalvärde - bas som parameter, tolkar innehållet i bred sträng som ett integrerat nummer för den angivna basen och returnerar ett långt int-värde.

wcstol () Parametrar

  • str: En bred sträng som representerar ett integrerat tal.
  • str_end: En pekare till en pekare till ett brett tecken. Värdet på str_end ställs in av funktionen till nästa tecken i str efter det sista giltiga tecknet. Denna parameter kan också vara en nollpekare, i vilket fall den inte används.
  • bas: Basen för det integrerade värdet. Uppsättningen av giltiga värden för bas är (0, 2, 3,…, 35, 36).

wcstol () Returvärde

Funktionen wcstol () returnerar:

  • ett långt int-värde (som konverteras från strängen).
  • 0 om ingen giltig konvertering kunde utföras.

Exempel 1: Hur fungerar wcstol () -funktionen?

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

När du kör programmet blir resultatet:

 Strängvärde = 101aa ᚶ Lång Int-värde = 101 Slut Sträng = aa ᚶ Strängvärde = 59 Lång Int-värde = 59 Slut Sträng =

Ett giltigt heltal för wcstol () -funktionen består av:

  • Ett valfritt + eller - tecken.
  • Ett prefix 0 för oktal bas (gäller endast när bas = 8 eller 0).
  • Ett prefix 0x eller 0X för hexadecimal bas (gäller endast när bas = 16 eller 0).
  • En sekvens av siffror och / eller alfabet (om basen är större än 10).

De giltiga värdena för parameterbas är (0, 2, 3,…, 35, 36). En uppsättning giltiga siffror för bas 2 är (0, 1), för bas 3 är (0, 1, 2) och så vidare. För baser som börjar från 11 till 36 inkluderar giltiga siffror alfabet. Uppsättningen med giltiga siffror för bas 11 är (0, 1,…, 9, A, a), för bas 12 är (0, 1,…, 9, A, a, B, b) och så vidare.

Exempel 2: wcstol () -funktion med olika baser

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

När du kör programmet blir resultatet:

 311bzϾϿ till Long Int med bas-5 = 81 Ändsträng = bzϾϿ 311bzϾϿ till Long Int med bas-5 = 5351 Ändsträng = zϾϿ 311bzϾϿ till Long Int med bas-5 = 5087231 Ändsträng = ϾϿ

Funktionen wcstol () ignorerar alla ledande blankstegstecken tills det primära tecknet som inte är mellanslag hittas.

I allmänhet har ett giltigt heltalargument för wcstol () -funktionen följande form:

 (blanksteg) (- | +) (0 | 0x) (alfanumeriska tecken)

Från och med denna karaktär tar det så många tecken som möjligt som bildar en giltig helhetsrepresentation och omvandlar dem till ett långt int-värde. Oavsett vad som är kvar av strängen efter att den sista giltiga karaktären ignoreras och har ingen inverkan på resultatet.

Exempel 3: wcstol () -funktion för ledande blanksteg och ogiltig konvertering

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

När du kör programmet blir resultatet:

 205Ϣx till lång int med bas-5 = 10 ändsträng = 5Ϣx xƜz201 till lång int med bas-12 = 0 slutsträng = xƜz201

Om basen är 0 bestäms den numeriska basen automatiskt genom att titta på strängens format. Om prefixet är 0 är basen oktal (8). Om prefixet är 0x eller 0X är basen hexadecimal (16), annars är basen decimal (10).

Exempel 4: wcstol () -funktion med bas 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; )

När du kör programmet blir resultatet:

 0539Ẅ till Long Int med bas-0 = 43 Ändsträng = 9Ẅ 0xa31 ע till Long Int med bas-0 = 2609 Ändsträng = ע 119x ؏ till Long Int med bas-0 = 119 Ändsträng = x ؏

Intressanta artiklar...