C ++ wcstoll () - C ++ standardraamatukogu

Funktsioon wcstoll () versioonis C ++ tõlgendab laia stringi sisu määratud baasi lahutamatu arvuna ja tagastab selle väärtuse pika pika int-na.

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

 Aluse 10 ja laia stringi L "31ÛÕÕ" jaoks Kehtiv arvuline osa -> 31 Esimene märk pärast kehtivat arvulist osa -> Û

See on määratletud päisefailis.

wcstoll () prototüüp

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

Funktsioon wcstoll () 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 lahutamatu arvuna ja tagastab pika pika int-väärtuse.

wcstoll () parameetrid

  • str: lai string, millel on integraalarv.
  • 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).

wcstoll () Tagastusväärtus

Funktsioon wcstoll () tagastab:

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

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

 #include #include #include using namespace std; int main() ( setlocale(LC_ALL, "en_US.UTF-8"); wchar_t str1() = L"41u0166u0124xx"; wchar_t str2() = L"127"; wchar_t *end; long long value; int base = 10; value = wcstoll(str1, &end, base); wcout << L"String value = " << str1 << endl; wcout << L"Long Long Int value = " << value << endl; wcout << L"End String = " << end << endl; value = wcstoll(str2, &end, base); wcout << L"String value = " << str2 << endl; wcout << L"Long Long Int value = " << value << endl; wcout << L"End String = " << end << endl; return 0; )

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

 Stringi väärtus = 41ŦĤxx Long Long Int väärtus = 41 End String = ŦĤxx Stringi väärtus = 127 Long Long Int väärtus = 127 End String =

Funktsiooni wcstoll () 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).

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

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

 311bzϾϿ kuni pika pika keskmise aluseni-5 = 81 lõpu string = bzϾϿ 311bzϾϿ kuni pika pika keskmise aluseni-12 = 5351 lõpu string = zϾϿ 311 bzϾϿ kuni pika pika keskmise pikkuseni alus-36 = 5087231 lõnga string = ϾϿ

Funktsioon wcstoll () eirab kõiki juhtivaid tühimärke, kuni leitakse esmane tühimärk.

Üldiselt on funktsiooni wcstoll () kehtival täisarvul järgmine vorm:

 (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 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 wcstoll () tühiku 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 Long Long Int with base-5 = " << wcstoll(L" 205u03e2x", &end, 5) << endl; wcout << L"End String = " << end << endl << endl; wcout << L"xu019cz201 to Long Long Int with base-12 = " << wcstoll(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 pikk pikk keskmine baas-5 = 10 lõnga string = 5Ϣx xƜz201 kuni pikk pikk keskmine koos alusega-12 = 0 lõpp-string = 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 wcstoll () baasiga 0

 #include #include #include using namespace std; int main() ( setlocale(LC_ALL, "en_US.UTF-8"); wchar_t *end; wcout << L"0539u1e84 to Long Long Int with base-0 = " << wcstoll(L"0539u1e84", &end, 0) << endl; wcout << L"End String = " << end << endl << endl; wcout << L"0xa31u05e2 to Long Long Int with base-0 = " << wcstoll(L"0xa31u05e2", &end, 0) << endl; wcout << L"End String = " << end << endl << endl; wcout << L"119xu060f to Long Long Int with base-0 = " << wcstoll(L"119xu060f", &end, 0) << endl; wcout << L"End String = " << end << endl << endl; return 0; )

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

 0539Ẅ kuni pika pika keskmise alus-0 = 43 lõpu stringina = 9Ẅ 0xa31 ע kuni pika pika keskmise aluseni-0 = 2609 lõpuse stringi = ע 119x ؏ kuni pika pika keskmise siseni 0 = 119 otsa string = x ؏

Huvitavad Artiklid...