C ++ wcstoll () - C ++ standardbibliotek

Funktionen wcstoll () i C ++ fortolker indholdet af en bred streng som et integralt tal i den angivne base og returnerer dens værdi som et langt langt int.

Funktionen wcstoll () indstiller også en markør til at pege på det første tegn efter det sidste gyldige tegn i den brede streng, hvis der er nogen, ellers er markøren indstillet til null.

 For base 10 og den brede streng L "31ÛÕÕ" Gyldig numerisk del -> 31 Første tegn efter gyldig numerisk del -> Û

Det er defineret i header-fil.

wcstoll () prototype

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

Funktionen wcstoll () tager en bred strengstr, en markør til bred karakter str_end og en heltal værdi - base som parameter.

Derefter fortolkes indholdet af bred streng som et integreret antal af den givne base og returnerer en lang lang int-værdi.

wcstoll () Parametre

  • str: En bred streng med repræsentation af et integreret tal.
  • str_end: En markør til en markør til en bred karakter. Værdien af ​​str_end indstilles af funktionen til det næste tegn i str efter det sidste gyldige tegn. Denne parameter kan også være en nul pointer, i hvilket tilfælde den ikke bruges.
  • base: Grundlaget for den integrerede værdi. Sættet med gyldige værdier for base er (0, 2, 3,…, 35, 36).

wcstoll () Returværdi

Funktionen wcstoll () returnerer:

  • en lang lang int-værdi (som konverteres fra strengen).
  • 0, hvis der ikke kunne udføres nogen gyldig konvertering.

Eksempel 1: Hvordan fungerer 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ører programmet, vil output være:

 Strengværdi = 41ŦĤxx Lang lang Int-værdi = 41 Slutstreng = ŦĤxx Strengværdi = 127 Lang lang Int-værdi = 127 Afslut streng =

En gyldig heltalværdi for wcstoll () -funktionen består af:

  • Et valgfrit + eller - tegn.
  • Et præfiks 0 for oktal base (gælder kun når base = 8 eller 0).
  • Et præfiks 0x eller 0X for hexadecimal base (gælder kun når base = 16 eller 0).
  • En række af cifre og / eller alfabeter (hvis basen er større end 10).

De gyldige værdier for parameterbasen er (0, 2, 3,…, 35, 36). Et sæt gyldige cifre for base 2 er (0, 1), for base 3 er (0, 1, 2) og så videre. For baser, der starter fra 11 til 36, inkluderer gyldige cifre alfabeter.

Sættet med gyldige cifre for base 11 er (0, 1,…, 9, A, a), for base 12 er (0, 1,…, 9, A, a, B, b) og så videre.

Eksempel 2: wcstoll () -funktion med forskellige 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ører programmet, vil output være:

 311bzϾϿ til Long Long Int med base-5 = 81 Endestreng = bzϾϿ 311bzϾϿ til Long Long Int med base-12 = 5351 Endestreng = zϾϿ 311bzϾϿ til Long Long Int med base-36 = 5087231 Endestreng = ϾϿ

Funktionen wcstoll () ignorerer alle de førende blanktegn, indtil det primære ikke-hvide mellemrumstegn findes.

Generelt har et gyldigt heltalargument for wcstoll () -funktionen følgende form:

 (mellemrum) (- | +) (0 | 0x) (alfanumeriske tegn)

Derefter tager det så mange tegn som muligt fra denne karakter, der danner en gyldig heltalrepræsentation og konverterer dem til en lang int-værdi.

Uanset hvad der er tilbage af strengen efter det sidste gyldige tegn ignoreres og har ingen indflydelse på resultatet.

Eksempel 3: wcstoll () -funktion til førende mellemrum og ugyldig 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ører programmet, vil output være:

 205Ϣx til Long Long Int med base-5 = 10 Endestreng = 5Ϣx xƜz201 til Long Long Int med base-12 = 0 Endstreng = xƜz201

Hvis basen er 0, bestemmes den numeriske base automatisk ved at se på strengens format. Hvis præfikset er 0, er basen oktal (8). Hvis præfikset er 0x eller 0X, er basen hexadecimal (16), ellers er basen decimal (10).

Eksempel 4: wcstoll () -funktion med base 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ører programmet, vil output være:

 0539Ẅ til Long Long Int med base-0 = 43 Endestreng = 9Ẅ 0xa31 ע til Long Long Int med base-0 = 2609 Endestreng = ע 119x ؏ til Long Long Int med base-0 = 119 Endestreng = x ؏

Interessante artikler...