Stol() Function sa C++

Stol Function Sa C



Ang C++ ay isa sa pinakasikat at pinakalumang programming language na ginagamit para sa pagbuo ng mga application na may mataas na pagganap. Ginagamit ito sa mga dalubhasang programmer at baguhang developer. Pangunahing ginagamit ito sa pagbuo ng laro at isang mainam na opsyon para sa pagbuo ng mga operating system. Kapag nagsusulat ng code sa wikang C++, maaari kang makakita ng pag-convert ng data mula sa isang uri patungo sa isa pa. Sa artikulong ito, matututunan mong i-convert ang isang string sa isang mahabang integer. Medyo mahirap i-convert ang isang string sa anumang ibang format. Gayunpaman, ang C++ programming language ay nagbibigay ng mabilis at mahusay na paraan upang i-convert ang mga string sa mga integer.

stol Function sa C++

Ang stol ay isang C++ built-in na function na ibinigay sa std library. Kino-convert nito ang mga string sa mahahabang numero ng integer. Kino-convert nito ang string content sa isang integer number ng tinukoy na base at nagbabalik ng mahabang integer value. Kailangan ng tatlong parameter, ang isa ay ang input string, ang pangalawa ay ang object parameter, at ang pangatlo ay ang numerical base. Ang syntax ng stol function ay ibinigay sa ibaba, tingnan mo:









Ang function na stol ay tumatagal ng tatlong parameter: input_string, laki, at base. Ang 'input_string' ay kumakatawan sa input string na kailangang i-convert sa isang mahabang integer number.



Ang parameter na 'size' ay kumakatawan sa object ng uri size_t na nagdadala ng susunod na posisyon ng character sa input string pagkatapos ng numerical value. Maaari itong maging null pointer kung hindi ito kailangang gamitin.





Ang ikatlong parameter, ang parameter na 'base' ay kumakatawan sa base kung saan kailangang bigyang-kahulugan ang string. Halimbawa, kung ang '2' na base ay ibinigay, ang string ay bibigyang-kahulugan bilang ang integer base 2 na numero. Ang default na halaga ng base parameter ay 10 at kung 0 ang ibinigay, ang batayang halaga ay matutukoy sa pamamagitan ng format sa pagkakasunud-sunod. Ibinabalik ng stol function ang mahabang integer number na kumakatawan sa int value ng isang ibinigay na string.

Ngayon, tuklasin natin ang ilang halimbawa para maunawaan kung paano gumagana ang stol function sa C++.



Halimbawa # 1

Sa halimbawang ito, magbibigay kami ng mga desimal at hexadecimal na string upang suriin kung paano iko-convert ng stol function ang mga ito sa decimal at hexadecimal integer na mga numero.

Ang 'dec = 123456789' ay isang decimal string at na-convert sa isang mahabang integer gamit ang stol function na stol(dec,&size). Tandaan na ang base ay hindi ibinigay sa function bilang input parameter na bilang resulta ay gumagamit ng default na base 10 upang i-convert ang string sa isang decimal na numero. Gayunpaman, para sa pag-convert ng string mula sa isang hexadecimal na numero sa isang decimal na numero, ang base 16 ay ibinigay bilang input parameter stol(hex, nullptr, 16). Tulad ng alam natin, ang 16 base ay kumakatawan sa isang hexadecimal na numero.

#include

#include

#include

int pangunahing ( )

{

std :: string dec = '123456789' ;
std :: string hex = 'a2bf3c' ;
std :: string :: size_type laki ;
mahaba lidec = std :: mesa ( Disyembre, at laki ) ;
mahaba lihex = std :: mesa ( hex, nullptr , 16 ) ;
std :: cout << 'Input decimal string ' << dec << 'na-convert sa long int' << lidec << ' \n ' ;
std :: cout << 'Ipasok ang hexadecimal string ' << hex << 'na-convert sa long int' << lihex << ' \n ' ;
bumalik 0 ;


}

Narito ang sumusunod na output. Tandaan na ang decimal string na '123456789' ay na-convert sa '123456789' decimal long integer. Habang ang hexadecimal string na 'a2bf3c' ay na-convert sa '10665788' na hexadecimal na numero. Narito ang mga kinakailangang hakbang na maaari mong sundin upang malaman kung paano ginagawa ang conversion ng stol function:

( A2BF3C ) ₁₆ = ( 10 × 16 ) + ( dalawa × 16 ) + ( labing-isa × 16 ³ ) + ( labinlima × 16 ² ) + ( 3 × 16 ¹ ) + ( 12 × 16 ) = ( 10665788 ) ₁₀

Halimbawa # 2

Sa halimbawang ito, magko-convert kami ng binary number gamit ang stol function. Tingnan natin ang code sa ibaba at unawain ang paggana ng code. Ang '1010110110' ay ibinibigay bilang input string at base 2 ay ibinigay bilang input base parameter stol(bin,&size, 2), na kumakatawan sa numero sa binary na format. Iko-convert ng stol function ang binary number sa isang decimal na numero sa pamamagitan ng pagsunod sa mga hakbang na ito:

( 1010110110 ) = ( 1 × dalawa ) + ( 0 × dalawa ) + ( 1 × dalawa ) + ( 0 × dalawa ) + ( 1 × dalawa ) + ( 1 × dalawa ) + ( 0 × dalawa ³ ) + ( 1 × dalawa ² ) + ( 1 × dalawa ¹ ) + ( 0 × dalawa ) = ( 694 ) ₁₀ #include

#include

#include

int pangunahing ( )

{

std :: string bin = '1010110110' ;
std :: string :: size_type laki ;
mahaba libin = std :: mesa ( bin, at laki, dalawa ) ;
std :: cout << 'Input binary string' << bin << 'na-convert sa long int' << libin << ' \n ' ;
bumalik 0 ;


}

Tulad ng nakikita mo na ang stol function ay nagbalik ng parehong resulta tulad ng ginawa ng pangkalahatang proseso ng binary sa decimal na conversion.

Halimbawa # 3

Sa halimbawang ito, makikita natin kung ano ang mangyayari kung susubukan natin ang stol function na may di-wastong input. Isang string ng maraming character ang ibibigay sa stol function at 0 ang ibibigay bilang base value para awtomatikong matukoy ng function ang base ng string. Narito ang code:

Ang isang set ng mga character ay ibinibigay bilang input string na hindi tinutukoy ng anumang mga base value, ibig sabihin, 10, 16, 2, atbp. kaya ang function ay magbabalik ng error value.

#include

#include

#include

int pangunahing ( )

{

std :: string chr = 'abcdefgh' ;

std :: string :: size_type laki ;
mahaba str = std :: mesa ( chr, nullptr , 0 ) ;
std :: cout << 'Ipasok ang string ng character' << chr << 'na-convert sa long int' << str << ' \n ' ;
bumalik 0 ;


}

Tingnan ang output sa ibaba. Tandaan na ang compiler ay nagtaas ng 'invalid_argument' na pagbubukod dahil ang function ay hindi tumutugon sa mga string na hindi maaaring matukoy sa anumang base na halaga.

Halimbawa # 4

Sa halimbawang ito, magbibigay kami ng kumbinasyon ng valid at di-wastong input upang makita ang resulta ng stol() function.

Ang input string ay kumbinasyon ng mga wasto at di-wastong character, '123xf25'. Ang '0' ay ibinigay bilang isang input base upang ang function ay awtomatikong matukoy ang base ng input string batay sa uri ng mga character.

#include

#include

#include

int pangunahing ( )

{

std :: string chr = '123xf25' ;
std :: string :: size_type laki ;
mahaba str = std :: mesa ( chr, nullptr , 0 ) ;
std :: cout << 'Input string' << chr << 'na-convert sa long int' << str << ' \n ' ;
bumalik 0 ;


}

Narito ang output na nagpapakita ng paggana ng stol function na may kumbinasyon ng valid at di-wastong input:

Tandaan na na-convert ng function ang '123' sa decimal na numerong '123' at itinapon ang natitirang string dahil nakatanggap ito ng di-wastong input na 'x'. Ang string pagkatapos ng character na 'x' ay hindi kino-convert ng stol function, ibinabalik lamang ang mga unang character ng string na kasing haba ng int.

Konklusyon

Sa post na ito, ginalugad namin ang stol function ng C++ programming language. Sa tulong ng ilang kapaki-pakinabang at simpleng halimbawa, natutunan namin kung paano gumagana ang stol function sa iba't ibang uri ng input. Ang stol function ay tumatagal ng tatlong parameter, ang input string na iko-convert, isang size parameter na kumakatawan sa posisyon ng function sa string, at ang base value na kumakatawan sa base ng input string. Ibinabalik nito ang mahabang int value ng input string.