C ++ wcstoull () - C ++ Standardbibliotek

Funktionen wcstoull () i C ++ fortolker indholdet af en bred streng som et usigneret integralt nummer på den angivne base og returnerer dens værdi som et usigneret langt langt int.

Funktionen wcstoull () 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 "29hi $" Gyldig numerisk del -> 29 Første tegn efter gyldig numerisk del -> h

Det er defineret i header-fil.

wcstoull () prototype

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

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

Derefter fortolkes indholdet af bred streng som et usigneret integralt nummer på den givne base og returnerer en usigneret lang lang int-værdi.

wcstoull () Parametre

  • str: En bred streng med repræsentation af et usigneret integralt nummer.
  • 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).

wcstoull () Returværdi

Funktionen wcstoull () returnerer:

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

Eksempel 1: Hvordan fungerer wcstoull () -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; unsigned long long value; int base = 10; value = wcstoull(str1, &end, base); wcout << L"String value = " << str1 << endl; wcout << L"Unsigned Long Long Int value = " << value << endl; wcout << L"End String = " << end << endl; value = wcstoull(str2, &end, base); wcout << L"String value = " << str2 << endl; wcout << L"Unsigned 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 = 101aa ᚶ Ikke-signeret Lang Lang Int-værdi = 101 Afslut Streng = aa ᚶ Strengværdi = 59 Usigneret Lang Lang Int-værdi = 59 Afslut Streng =

En gyldig heltalværdi for wcstoull () -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).

Hvis argumentet indeholder et minus (-) i begyndelsen, konverteres det negative tal implicit til en usigneret lang lang int-type, som er et positivt tal.

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: wcstoull () fungerer 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 Unsigned Long Long Int with base-5 = " << wcstoull(str, &end, 5) << endl; wcout << L"End String = " << end << endl << endl; wcout << str << L" to Unsigned Long Long Int with base-12 = " << wcstoull(str, &end, 12) << endl; wcout << L"End String = " << end << endl << endl; wcout << str << L" to Unsigned Long Long Int with base-36 = " << wcstoull(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 usigneret lang lang int med base-5 = 81 endestreng = bzϾϿ 311bzϾϿ til usigneret lang lang int med base-12 = 5351 slutstreng = zϾϿ 311bzϾϿ til usigneret lang lang int med base-36 = 5087231 slutstreng = ϾϿ

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

Generelt har et gyldigt heltalargument for wcstoull () -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 usigneret 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: funktion wcstoull () 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 Unsigned Long Long Int with base-5 = " << wcstoull(L" 205u03e2x", &end, 5) << endl; wcout << L"End String = " << end << endl << endl; wcout << L"xu019cz201 to Unsigned Long Long Int with base-12 = " << wcstoull(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 usigneret lang lang int med base-5 = 10 slutstreng = 5Ϣx xƜz201 til usigneret lang lang int med base-12 = 0 slutstreng = 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: wcstoull () -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 Unsigned Long Long Int with base-0 = " << wcstoull(L"0539u1e84", &end, 0) << endl; wcout << L"End String = " << end << endl << endl; wcout << L"0xa31u05e2 to Unsigned Long Long Int with base-0 = " << wcstoull(L"0xa31u05e2", &end, 0) << endl; wcout << L"End String = " << end << endl << endl; wcout << L"119xu060f to Unsigned Long Long Int with base-0 = " << wcstoull(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 Unsigneret Long Long Int med base-0 = 43 Endestreng = 9Ẅ 0xa31 ע til Unsigneret Long Long Int med base-0 = 2609 Endestreng = ע 119x ؏ til Unsignet Long Long Int med base-0 = 119 Endestreng = x ؏

Interessante artikler...