C ++ wcstoul () - C ++ standardraamatukogu

Funktsioon wcstoul () tõlgendab C ++ keeles laia stringi sisu määratletud baasi allkirjastamata integraalarvuna ja tagastab selle väärtuse allkirjastamata pika int-na.

Funktsioon wcstoul () paneb ka kursori osutama laia stringi viimase kehtiva märgi järel olevale esimesele märgile, kui neid on, vastasel juhul seatakse kursor nullile.

 Aluse 10 ja laia stringi L "29hi $" jaoks Kehtiv arvuline osa -> 29 Esimene märk pärast kehtivat numbrilist osa -> h

See on määratletud päisefailis.

wcstoul () prototüüp

 allkirjastamata pikk wcstoul (const wchar_t * str, wchar_t ** str_end, int alus);

Funktsioon wcstoul () võtab parameetriks laia stringi stringi, kursori laiale märgile str_end ja täisarvu aluse.

Seejärel tõlgendab see laia stringi sisu antud baasi allkirjastamata integraalarvuna ja tagastab allkirjastamata pika int-väärtuse.

wcstoul () parameetrid

  • str: lai string, millel on allkirjastamata integraalnumber.
  • str_end: Kursor laia tähe suunas. Funktsiooni str_end väärtuse määrab funktsioon järgmisele märgile stringis pärast viimast kehtivat tähemärki. See parameeter võib olla ka nullkursor, sel juhul seda ei kasutata.
  • alus: integraalväärtuse alus. Baasi kehtivate väärtuste komplekt on (0, 2, 3,…, 35, 36).

wcstoul () Tagastusväärtus

Funktsioon wcstoul () tagastab:

  • allkirjastamata pikk int väärtus (mis teisendatakse stringist).
  • 0, kui kehtivat teisendamist ei õnnestunud teha.

Näide 1: Kuidas funktsioon wcstoul () töötab?

 #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 value; int base = 10; value = wcstoul(str1, &end, base); wcout << L"String value = " << str1 << endl; wcout << L"Unsigned Long Int value = " << value << endl; wcout << L"End String = " << end << endl; value = wcstoul(str2, &end, base); wcout << L"String value = " << str2 << endl; wcout << L"Unsigned Long Int value = " << value << endl; wcout << L"End String = " << end << endl; return 0; )

Programmi käivitamisel on väljund järgmine:

 Stringiväärtus = 101aa

Funktsiooni wcstoul () kehtiv täisarv sisaldab järgmist:

  • Valikuline märk + või -.
  • Oktaalaluse eesliide 0 (kehtib ainult siis, kui alus = 8 või 0).
  • Kuueteistkümnendkohalise baasi eesliide 0x või 0X (kehtib ainult siis, kui alus = 16 või 0).
  • Numbrite ja / või tähestike jada (kui alus on suurem kui 10).

Kui argument sisaldab alguses miinusmärki (-), teisendatakse negatiivne arv kaudselt allkirjastamata pikaks int-tüüpi, mis on positiivne arv.

Parameetri baasi kehtivad väärtused on (0, 2, 3,…, 35, 36). Baasi 2 kehtivate numbrite komplekt on (0, 1), baasi 3 puhul on (0, 1, 2) ja nii edasi. Aluste 11–36 alustel sisaldavad kehtivad numbrid tähestikke.

Baasi 11 kehtivate numbrite komplekt on (0, 1,…, 9, A, a), baasi 12 jaoks on (0, 1,…, 9, A, a, B, b) ja nii edasi.

Näide 2: funktsioon wcstoul () erinevate alustega

 #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 Int with base-5 = " << wcstoul(str, &end, 5) << endl; wcout << L"End String = " << end << endl << endl; wcout << str << L" to Unsigned Long Int with base-12 = " << wcstoul(str, &end, 12) << endl; wcout << L"End String = " << end << endl << endl; wcout << str << L" to Unsigned Long Int with base-36 = " << wcstoul(str, &end, 36) << endl; wcout << L"End String = " << end << endl << endl; return 0; )

Programmi käivitamisel on väljund järgmine:

 311bzϾϿ kuni allkirjastamata pika keskmise alusega-5 = 81 lõpu string = bzϾϿ 311bzϾϿ kuni allkirjastamata pika keskmise siseni alus = 12 = 5351 lõpuni string = zϾϿ 311 bzϾϿ kuni allkirjastamata pika keskmise siseni baas-36 = 5087231 lõpuni string = ϾϿ

Funktsioon wcstoul () ignoreerib kõiki juhtivaid tühimärke, kuni leitakse esmane mitte-tühimärk.

Üldiselt on funktsiooni wcstoul () kehtiv täisarvu argument järgmisel kujul:

 (tühik) (- | +) (0 | 0x) (tähtnumbrilised tähemärgid)

Seejärel, alates sellest märgist, võtab see võimalikult palju märke, mis moodustavad kehtiva täisarvu kujutise ja teisendavad need allkirjastamata pikaks int-väärtuseks.

Kõik, mis jääb stringist järele pärast viimase kehtiva märgi eiramist, ei mõjuta tulemust.

Näide 3: funktsioon wcstoul () tühimärgi ja kehtetu teisendamise juhtimiseks

 #include #include #include using namespace std; int main() ( setlocale(LC_ALL, "en_US.UTF-8"); wchar_t *end; wcout << L" 205u03e2x to Unsigned Long Int with base-5 = " << wcstoul(L" 205u03e2x", &end, 5) << endl; wcout << L"End String = " << end << endl << endl; wcout << L"xu019cz201 to Unsigned Long Int with base-12 = " << wcstoul(L"xu019cz201", &end, 12) << endl; wcout << L"End String = " << end << endl << endl; return 0; )

Programmi käivitamisel on väljund järgmine:

 205Ϣx kuni allkirjastamata pika keskmiseni baas-5 = 10 lõppstringiga = 5Ϣx xƜz201 kuni allkirjastamata pika keskmise väärtuseni baas-12 = 0 lõppstringi = xƜz201

Kui alus on 0, määratakse numbriline alus stringi vormingut vaadates automaatselt. Kui eesliide on 0, on alus kaheksand (8). Kui eesliide on 0x või 0X, on alus kuueteistkümnendsüsteem (16), vastasel juhul on alus kümnendkoht (10).

Näide 4: funktsioon wcstoul () baasiga 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 Int with base-0 = " << wcstoul(L"0539u1e84", &end, 0) << endl; wcout << L"End String = " << end << endl << endl; wcout << L"0xa31u05e2 to Unsigned Long Int with base-0 = " << wcstoul(L"0xa31u05e2", &end, 0) << endl; wcout << L"End String = " << end << endl << endl; wcout << L"119xu060f to Unsigned Long Int with base-0 = " << wcstoul(L"119xu060f", &end, 0) << endl; wcout << L"End String = " << end << endl << endl; return 0; )

Programmi käivitamisel on väljund järgmine:

 0539Ẅ kuni allkirjastamata pika keskmise väärtusega 0 - 43 lõpp-string = 9Ẅ 0xa31

Huvitavad Artiklid...