C ++ wcstoll () - C ++ Standardbibliotek

Funktionen wcstoll () 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 långt int.

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

 För bas 10 och bredsträng L "31ÛÕÕ" Giltig numerisk del -> 31 Första tecknet efter giltig numerisk del -> Û

Det definieras i rubrikfilen.

wcstoll () prototyp

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

Funktionen wcstoll () tar en bred strängstr, en pekare till brett tecken str_end och ett heltal - bas som parameter.

Det tolkar sedan innehållet i bred sträng som ett integrerat nummer i den givna basen och returnerar ett långt långt int-värde.

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

wcstoll () Returvärde

Funktionen wcstoll () returnerar:

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

Exempel 1: Hur fungerar wcstoll () -funktionen?

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

När du kör programmet blir resultatet:

 Strängvärde = 41ŦĤxx Lång Lång Int-värde = 41 Slutsträng = ŦĤxx Strängvärde = 127 Lång Lång Int-värde = 127 Slutsträng =

Ett giltigt heltal för wcstoll () -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: wcstoll () -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 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; )

När du kör programmet blir resultatet:

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

Funktionen wcstoll () ignorerar alla de ledande blankstegstecknen tills det primära teckenet som inte är mellanslag hittas.

I allmänhet har ett giltigt heltalargument för wcstoll () -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: wcstoll () -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 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; )

När du kör programmet blir resultatet:

 205Ϣx till Long Long Int med bas-5 = 10 End Sträng = 5Ϣx xƜz201 till Long Long Int med bas-12 = 0 End Strä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: wcstoll () -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 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; )

När du kör programmet blir resultatet:

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

Intressanta artiklar...