A wcstoull () függvény a C ++ - ban egy széles karakterlánc tartalmát a megadott bázis előjel nélküli integrálszámaként értelmezi, és értékét vissza nem írt hosszú hosszú int-ként adja vissza.
A wcstoull () függvény egy mutatót is beállít, amely a széles karakterlánc utolsó érvényes karaktere után az első karakterre mutat, ha van ilyen, különben a mutató nullára van állítva.
A 10. alaphoz és a L "29hi $" széles húrhoz Érvényes numerikus rész -> 29 Első karakter érvényes számrész után -> h
A fejlécfájlban van meghatározva.
wcstoull () prototípus
aláíratlan hosszú wcstoull (const wchar_t * str, wchar_t ** str_end, int alap);
A wcstoull () függvény egy széles string karakterláncot, egy mutatót az str_end széles karakterre és egy egész érték alapot vesz fel paraméterként.
Ezután a széles karakterlánc tartalmát az adott bázis előjel nélküli integrálszámaként értelmezi, és visszaad egy előjel nélküli hosszú hosszú int értéket.
wcstoull () Paraméterek
- str: Széles karakterlánc, amely aláíratlan egész számot képvisel.
- str_end: Mutató egy széles karakterre mutató mutatóra. Az str_end értékét a függvény a következő karakterre állítja az str-ben az utolsó érvényes karakter után. Ez a paraméter lehet egy null mutató is, ebben az esetben nem használják.
- alap: Az integrálérték alapja. Az alap érvényes értékeinek halmaza (0, 2, 3,…, 35, 36).
wcstoull () Visszatérési érték
A wcstoull () függvény visszatér:
- egy előjel nélküli hosszú hosszú int érték (amelyet a karakterláncból konvertálunk).
- 0, ha nem lehet érvényes konverziót végrehajtani.
1. példa: Hogyan működik a wcstoull () függvény?
#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; )
A program futtatásakor a kimenet a következő lesz:
Karakterlánc értéke = 101aa ᚶ Aláíratlan hosszú hosszú Int érték = 101 Vég karakterlánc = aa ᚶ Karakterlánc értéke = 59 Aláíratlan hosszú hosszú int érték = 59 Vég karakterlánc =
A wcstoull () függvény érvényes egész értéke a következőkből áll:
- Opcionális + vagy - jel.
- 0 előtag az oktális bázishoz (csak akkor érvényes, ha a bázis = 8 vagy 0).
- 0x vagy 0X előtag hexadecimális bázisra (csak akkor alkalmazható, ha a bázis = 16 vagy 0).
- Számjegyek és / vagy ábécék sorozata (ha az alap nagyobb, mint 10).
Ha az argumentum mínusz (-) előjelet tartalmaz az elején, a negatív számot implicit módon konvertáljuk előjel nélküli hosszú hosszú int típusúvá, amely pozitív szám.
A paraméteralap érvényes értékei: (0, 2, 3,…, 35, 36). A 2. bázis érvényes számjegyeinek halmaza (0, 1), a 3. bázis esetében (0, 1, 2) és így tovább. A 11 és 36 közötti bázisok esetében az érvényes számjegyek ábécét tartalmaznak.
A 11 bázis érvényes számjegyeinek halmaza (0, 1,…, 9, A, a), a 12 bázis esetében (0, 1,…, 9, A, a, B, b) és így tovább.
2. példa: wcstoull () függvény különböző alapokkal
#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; )
A program futtatásakor a kimenet a következő lesz:
311bzϾϿ - előjel nélküli hosszú hosszú int alap-5 = 81 végső karakterlánc = bzϾϿ 311bzϾϿ - előjel nélküli hosszú hosszú közép alap-5 = 81 végső karakterlánc = bzϾϿ 311bzϾϿ - hosszú ideig nem jelölt hosszú hosszú int alap-12 = 5351 végű karakterlánc = 5351 végső karakterlánc = zϾϿ 311 bzϾϿ hosszú hosszú hosszú középérték nélküli jel hosszú alapú 36-os = 5087231 hosszú karakterlánc = ϾϿ
A wcstoull () függvény mindaddig figyelmen kívül hagyja az összes vezető szóköz karaktert, amíg meg nem találja az elsődleges nem szóköz karaktert.
Általában a wcstoull () függvény érvényes egész argumentuma a következő formában van:
(szóköz) (- | +) (0 | 0x) (alfanumerikus karakterek)
Ezután, ebből a karakterből kiindulva, a lehető legtöbb karakterre van szükség, amely érvényes egész ábrázolást alkot, és átalakítja őket aláíratlan hosszú int értékké. Bármi, ami az utolsó érvényes karakter után marad a karakterláncból, figyelmen kívül marad, és nincs hatása az eredményre.
3. példa: wcstoull () függvény a szóköz és az érvénytelen konverzió vezetéséhez
#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; )
A program futtatásakor a kimenet a következő lesz:
205Ϣx - előjel nélküli hosszú hosszú int alap-5 = 10 végső karakterlánc = 5Ϣx xƜz201 - előjel nélküli hosszú hosszú int alap-12 = 0 vég 0 = 0 vég
Ha az alap 0, akkor a numerikus alapot automatikusan meghatározza a karakterlánc formátumának megnézésével. Ha az előtag 0, akkor az alapja oktális (8). Ha az előtag 0x vagy 0X, akkor az alap hexadecimális (16), különben az alap decimális (10).
4. példa: wcstoull () függvény 0 bázissal
#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; )
A program futtatásakor a kimenet a következő lesz:
0539Ẅ -ig Előjel nélküli hosszú hosszú int-alap-0 = 43 végső karakterlánc = 9Ẅ 0xa31 ע-ig Előjel nélküli hosszú hosszú int-alap-alap = 0 = 2609 Vég-karakterlánc = ע 119x ؏-ig Jel nélküli hosszú hosszú int-alap-0 = 119 Vég-karakterlánc = x ؏