C ++ wcstol () - C ++ standardraamatukogu

Funktsioon wcstol () tõlgendab C ++ keeles laia stringi sisu määratud baasi terviknumbrina ja tagastab selle väärtuse pika int-na.

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

See on määratletud päisefailis.

 Aluse 10 ja laia stringi L "12abc" jaoks Kehtiv arvuline osa -> 12 Esimene märk pärast kehtivat arvulist osa -> a

wcstol () prototüüp

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

Funktsioon wcstol () võtab parameetriks laia stringi, kursori laia tähe juurde ja täisarvu - aluse, tõlgendab laia stringi sisu antud aluse terviknumbrina ja tagastab pika int-väärtuse.

wcstol () 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).

wcstol () Tagastusväärtus

Funktsioon wcstol () tagastab:

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

Näide 1: Kuidas funktsioon wcstol () 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; long value; int base = 10; value = wcstol(str1, &end, base); wcout << L"String value = " << str1 << endl; wcout << L"Long Int value = " << value << endl; wcout << L"End String = " << end << endl; value = wcstol(str2, &end, base); wcout << L"String value = " << str2 << endl; wcout << L"Long Int value = " << value << endl; wcout << L"End String = " << end << endl; return 0; )

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

 Stringi väärtus = 101aa ᚶ Pika Int väärtus = 101 Lõpus String = aa ᚶ Stringi väärtus = 59 Pika Int väärtus = 59 Lõpus String =

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

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

 311bzϾϿ kuni pikk Int koos baas-5 = 81 lõpp-string = bzϾϿ 311bzϾϿ kuni pikk keskmine koos alus-5 = 5351 lõpp-string = zϾϿ 311bzϾϿ kuni pikk keskmine koos alusega-5 = 5087231 Lõpp-string = ϾϿ

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

Üldiselt on funktsiooni wcstol () 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 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 wcstol () 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 Int with base-5 = " << wcstol(L" 205u03e2x", &end, 5) << endl; wcout << L"End String = " << end << endl << endl; wcout << L"xu019cz201 to Long Int with base-12 = " << wcstol(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 keskmine baas-5 = 10 lõnga string = 5Ϣx xƜz201 kuni 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 wcstol () alusega 0

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

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

 0539Ẅ kuni pikk keskmine baas-0 = 43 lõpustring = 9Ẅ 0xa31

Huvitavad Artiklid...