C ++ wcstol () - C ++ Standardbibliotek

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

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

Det er defineret i header-fil.

 For base 10 og den brede streng L "12abc" Gyldig numerisk del -> 12 Første tegn efter gyldig numerisk del -> a

wcstol () prototype

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

Funktionen wcstol () tager en bred streng, en markør til bred karakter og en heltalsværdi - base som parameter, fortolker indholdet af bred streng som et integreret antal af den givne base og returnerer en lang int-værdi.

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

wcstol () Returværdi

Funktionen wcstol () returnerer:

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

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

 Strengværdi = 101aa ᚶ Lang Int-værdi = 101 Slutstreng = aa ᚶ Strengværdi = 59 Lang Int-værdi = 59 Slutstreng =

En gyldig heltalværdi for wcstol () -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: wcstol () 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 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ører programmet, vil output være:

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

Funktionen wcstol () ignorerer alle de ledende mellemrumstegn, indtil det primære ikke-hvide mellemrumstegn findes.

Generelt har et gyldigt heltalargument for wcstol () -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: wcstol () -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 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ører programmet, vil output være:

 205Ϣx til Long Int med base-5 = 10 Endestreng = 5Ϣx xƜz201 til Long Int med base-12 = 0 Endestreng = 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: wcstol () -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 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ører programmet, vil output være:

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

Interessante artikler...