C ++ wcstoull () - C ++ Standardbibliotek

Funksjonen wcstoull () i C ++ tolker innholdet i en bred streng som et usignert integralt nummer for den angitte basen og returnerer verdien som en usignert lang lang int.

Funksjonen wcstoull () setter også en peker for å peke på det første tegnet etter det siste gyldige tegnet i den brede strengen hvis det er noen, ellers er pekeren satt til null.

 For base 10 og bredstrengen L "29hi $" Gyldig numerisk del -> 29 Første tegn etter gyldig numerisk del -> h

Det er definert i topptekstfilen.

wcstoull () prototype

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

Funksjonen wcstoull () tar en bred streng str, en peker til bred karakter str_end og en heltallverdi - base som parameter.

Den tolker deretter innholdet i bred streng som et usignert integralt nummer for den gitte basen og returnerer en usignert lang lang int-verdi.

wcstoull () Parametere

  • str: En bred streng som representerer et usignert integralt tall.
  • str_end: En peker til en peker til et bredt tegn. Verdien av str_end er satt av funksjonen til neste tegn i str etter det siste gyldige tegnet. Denne parameteren kan også være en nullpeker, i så fall brukes den ikke.
  • base: Grunnen til integralverdien. Settet med gyldige verdier for basen er (0, 2, 3,…, 35, 36).

wcstoull () Returverdi

Funksjonen wcstoull () returnerer:

  • en usignert lang lang int-verdi (som konverteres fra strengen).
  • 0 hvis ingen gyldig konvertering kunne utføres.

Eksempel 1: Hvordan fungerer wcstoull () -funksjonen?

 #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 kjører programmet, vil utdataene være:

 Strengverdi = 101aa ᚶ Usignert Lang Lang Int-verdi = 101 Slutt Streng = aa ᚶ Strengverdi = 59 Usignert Lang Lang Int-verdi = 59 Sluttstreng =

En gyldig heltallverdi for wcstoull () -funksjonen består av:

  • Et valgfritt + eller - tegn.
  • Et prefiks 0 for oktal base (gjelder bare når base = 8 eller 0).
  • Et prefiks 0x eller 0X for heksadesimal base (gjelder bare når base = 16 eller 0).
  • En sekvens med sifre og / eller alfabet (hvis basen er større enn 10).

Hvis argumentet inneholder et minustegn (-) i begynnelsen, konverteres det negative tallet implisitt til en usignert lang lang int-type som er et positivt tall.

De gyldige verdiene for parameterbase er (0, 2, 3,…, 35, 36). Et sett med gyldige sifre for base 2 er (0, 1), for base 3 er (0, 1, 2) og så videre. For baser fra 11 til 36 inkluderer gyldige sifre alfabet.

Settet med gyldige sifre 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 () -funksjon med forskjellige 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 kjører programmet, vil utdataene være:

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

Funksjonen wcstoull () ignorerer alle de ledende mellomromstegnene til det primære ikke-hvite mellomromstegnet er funnet.

Generelt har et gyldig heltallargument for wcstoull () -funksjonen følgende form:

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

Fra dette tegnet tar det så mange tegn som mulig som danner en gyldig helhetsrepresentasjon og konverterer dem til en usignert lang int-verdi. Uansett hva som er igjen av strengen etter at det siste gyldige tegnet blir ignorert og har ingen innvirkning på resultatet.

Eksempel 3: wcstoull () -funksjon for ledende mellomrom 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 kjører programmet, vil utdataene være:

 205Ϣx til usignert Long Long Int med base-5 = 10 End Streng = 5Ϣx xƜz201 til Usignert Long Long Int med base-12 = 0 End Streng = xƜz201

Hvis basen er 0, bestemmes den numeriske basen automatisk ved å se på strengens format. Hvis prefikset er 0, er basen oktal (8). Hvis prefikset er 0x eller 0X, er basen heksadesimal (16), ellers er basen desimal (10).

Eksempel 4: wcstoull () -funksjon 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 kjører programmet, vil utdataene være:

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

Interessante artikler...