C ++ wcstoll () - C ++ standaardbibliotheek

De functie wcstoll () in C ++ interpreteert de inhoud van een brede reeks als een geheel getal van de opgegeven basis en retourneert de waarde ervan als een lange lange int.

De functie wcstoll () stelt ook een pointer zo in dat deze naar het eerste teken wijst na het laatste geldige teken van de brede tekenreeks als die er is, anders wordt de aanwijzer op nul gezet.

 Voor grondtal 10 en de brede reeks L "31ÛÕÕ" Geldig numeriek deel -> 31 Eerste teken na geldig numeriek deel -> Û

Het wordt gedefinieerd in het header-bestand.

wcstoll () prototype

 lange lange wcstoll (const wchar_t * str, wchar_t ** str_end, int base);

De functie wcstoll () heeft een brede string str, een pointer naar wide character str_end en een integer waarde - base als parameter.

Het interpreteert vervolgens de inhoud van een brede reeks als een geheel getal van de opgegeven basis en retourneert een lange lange int-waarde.

wcstoll () Parameters

  • str: een brede tekenreeks met de weergave van een geheel getal.
  • str_end: een pointer naar een pointer naar een breed karakter. De waarde van str_end wordt door de functie ingesteld op het volgende teken in str na het laatste geldige teken. Deze parameter kan ook een null-pointer zijn, in welk geval deze niet wordt gebruikt.
  • basis: de basis van de integrale waarde. De reeks geldige waarden voor het grondtal is (0, 2, 3,…, 35, 36).

wcstoll () Retourwaarde

De functie wcstoll () retourneert:

  • een lange lange int-waarde (die wordt geconverteerd uit de tekenreeks).
  • 0 als er geen geldige conversie kon worden uitgevoerd.

Voorbeeld 1: Hoe werkt wcstoll () functie?

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

Wanneer u het programma uitvoert, is de uitvoer:

 Stringwaarde = 41ŦĤxx Long Long Int-waarde = 41 End String = ŦĤxx String-waarde = 127 Long Long Int-waarde = 127 End String =

Een geldige gehele waarde voor de functie wcstoll () bestaat uit:

  • Een optioneel + of - teken.
  • Een voorvoegsel 0 voor octaal grondtal (alleen van toepassing als grondtal = 8 of 0).
  • Een voorvoegsel 0x of 0X voor hexadecimaal grondtal (alleen van toepassing als grondtal = 16 of 0).
  • Een reeks cijfers en / of alfabetten (als het grondtal groter is dan 10).

De geldige waarden voor de parameterbasis zijn (0, 2, 3,…, 35, 36). Een reeks geldige cijfers voor basis 2 is (0, 1), voor basis 3 is (0, 1, 2) enzovoort. Voor basissen die beginnen met 11 tot 36, zijn geldige cijfers inclusief alfabetten.

De reeks geldige cijfers voor basis 11 is (0, 1, …, 9, A, a), voor basis 12 is (0, 1, …, 9, A, a, B, b) enzovoort.

Voorbeeld 2: wcstoll () functie met verschillende bases

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

Wanneer u het programma uitvoert, is de uitvoer:

 311bzϾϿ tot Long Long Int met base-5 = 81 End String = bzϾϿ 311bzϾϿ tot Long Long Int met base-12 = 5351 End String = zϾϿ 311bzϾϿ tot Long Long Int met base-36 = 5087231 End String = ϾϿ

De functie wcstoll () negeert alle leidende witruimtetekens totdat het primaire niet-witruimteteken is gevonden.

Over het algemeen heeft een geldig integer-argument voor de functie wcstoll () de volgende vorm:

 (witruimte) (- | +) (0 | 0x) (alfanumerieke tekens)

Vervolgens, beginnend bij dit teken, zijn er zoveel mogelijk tekens nodig die een geldige integer-representatie vormen en deze omzetten in een lange int-waarde.

Wat er overblijft van de string na het laatste geldige teken wordt genegeerd en heeft geen effect op het resultaat.

Voorbeeld 3: wcstoll () functie voor voorloopspaties en ongeldige conversie

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

Wanneer u het programma uitvoert, is de uitvoer:

 205Ϣx tot Long Long Int met base-5 = 10 End String = 5Ϣx xƜz201 tot Long Long Int met base-12 = 0 End String = xƜz201

Als het grondtal 0 is, wordt het numerieke grondtal automatisch bepaald door naar het formaat van de string te kijken. Als het voorvoegsel 0 is, is de basis octaal (8). Als het voorvoegsel 0x of 0X is, is de basis hexadecimaal (16), anders is de basis decimaal (10).

Voorbeeld 4: functie wcstoll () met grondtal 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; )

Wanneer u het programma uitvoert, is de uitvoer:

 0539Ẅ tot Long Long Int met base-0 = 43 End String = 9Ẅ 0xa31 ע tot Long Long Int met base-0 = 2609 End String = ע 119x ؏ tot Long Long Int met base-0 = 119 End String = x ؏

Interessante artikelen...