Stol() funkcija C++

Stol Funkcija C



C++ yra viena iš populiariausių ir seniausių programavimo kalbų, naudojamų kuriant didelio našumo programas. Jis naudojamas tarp labai patyrusių programuotojų ir pradedančiųjų kūrėjų. Jis daugiausia naudojamas žaidimų kūrimui ir yra idealus pasirinkimas kuriant operacines sistemas. Rašydami kodą C++ kalba, galite susidurti su duomenų konvertavimu iš vieno tipo į kitą. Šiame straipsnyje jūs išmoksite konvertuoti eilutę į ilgą sveikąjį skaičių. Gana sunku konvertuoti eilutę į bet kokį kitą formatą. Tačiau C++ programavimo kalba yra greitas ir efektyvus būdas konvertuoti eilutes į sveikuosius skaičius.

stol Funkcija C++

Stol yra C++ įtaisyta funkcija, pateikta std bibliotekoje. Jis konvertuoja eilutes į ilgus sveikuosius skaičius. Jis konvertuoja eilutės turinį į nurodytos bazės sveikąjį skaičių ir grąžina ilgo sveikojo skaičiaus reikšmę. Tam reikalingi trys parametrai: vienas yra įvesties eilutė, antrasis yra objekto parametras, o trečias yra skaitinė bazė. Stol funkcijos sintaksė pateikta žemiau, pažiūrėkite:









Funkcija stol turi tris parametrus: input_string, dydį ir bazę. „Input_string“ reiškia įvesties eilutę, kurią reikia konvertuoti į ilgą sveikąjį skaičių.



Parametras „dydis“ nurodo dydžio_t tipo objektą, kuris po skaitinės reikšmės turi kitą simbolio poziciją įvesties eilutėje. Tai gali būti nulinė rodyklė, jei jos naudoti nereikia.





Trečiasis parametras, „bazinis“ parametras, reiškia bazę, kurioje reikia interpretuoti eilutę. Pavyzdžiui, jei nurodyta „2“ bazė, eilutė bus interpretuojama kaip sveikasis 2 bazės skaičius. Numatytoji bazinio parametro reikšmė yra 10, o jei pateikiama 0, bazinė reikšmė bus nustatyta pagal sekos formatą. Funkcija stol grąžina ilgą sveikąjį skaičių, nurodantį tam tikros eilutės int reikšmę.

Dabar panagrinėkime keletą pavyzdžių, kad suprastume, kaip stol funkcija veikia C++.



1 pavyzdys

Šiame pavyzdyje pateiksime dešimtaines ir šešioliktaines eilutes, kad patikrintume, kaip funkcija stol konvertuoja jas į dešimtainius ir šešioliktainius sveikuosius skaičius.

„dec = 123456789“ yra dešimtainė eilutė ir konvertuojama į ilgą sveikąjį skaičių naudojant stol funkciją stol(dec,&size). Atminkite, kad bazė nepateikiama funkcijoje kaip įvesties parametras, todėl eilutei konvertuoti į dešimtainį skaičių naudojama numatytoji bazė 10. Tačiau norint konvertuoti eilutę iš šešioliktainio skaičiaus į dešimtainį skaičių, 16 bazė pateikiama kaip įvesties parametras stol(hex, nullptr, 16). Kaip žinome, 16 bazė reiškia šešioliktainį skaičių.

#include

#include

#include

tarpt pagrindinis ( )

{

std :: styga gruod = '123456789' ;
std :: styga šešiakampis = 'a2bf3c' ;
std :: styga :: dydis_type dydis ;
ilgai lidec = std :: stalo ( gruodis, & dydis ) ;
ilgai lihex = std :: stalo ( šešiakampis, nullptr , 16 ) ;
std :: cout << 'Įvesti dešimtainę eilutę' << gruod << ' konvertuota į ilgą int ' << lidec << ' \n ' ;
std :: cout << 'Įvesti šešioliktainę eilutę' << šešiakampis << ' konvertuota į ilgą int ' << lihex << ' \n ' ;
grąžinti 0 ;


}

Štai tokia produkcija. Atminkite, kad dešimtainė eilutė „123456789“ konvertuota į „123456789“ dešimtainį ilgą sveikąjį skaičių. Nors šešioliktainė eilutė „a2bf3c“ buvo konvertuota į „10665788“ šešioliktainį skaičių. Toliau pateikiami būtini veiksmai, kuriuos galite atlikti norėdami sužinoti, kaip konvertavimą atlieka stol funkcija:

( A2BF3C ) ₁₆ = ( 10 × 16 ) + ( du × 16 ) + ( vienuolika × 16 ³ ) + ( penkiolika × 16 ² ) + ( 3 × 16 ¹ ) + ( 12 × 16 ) = ( 10665788 ) ₁0

2 pavyzdys

Šiame pavyzdyje dvejetainį skaičių konvertuosime naudodami stol funkciją. Pažiūrėkime toliau pateiktą kodą ir suprasime kodo veikimą. „1010110110“ pateikiama kaip įvesties eilutė, o 2 bazė pateikiama kaip įvesties bazinis parametras stol(bin,&size, 2), reiškiantis skaičių dvejetainiu formatu. Stol funkcija konvertuos dvejetainį skaičių į dešimtainį skaičių atlikdama šiuos veiksmus:

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

#include

#include

tarpt pagrindinis ( )

{

std :: styga šiukšliadėžė = '1010110110' ;
std :: styga :: dydis_type dydis ;
ilgai libin = std :: stalo ( šiukšliadėžė, & dydis, du ) ;
std :: cout << 'Įvesti dvejetainę eilutę' << šiukšliadėžė << ' konvertuota į ilgą int ' << libin << ' \n ' ;
grąžinti 0 ;


}

Kaip matote, stol funkcija grąžino tą patį rezultatą, kaip ir bendras dvejetainis konvertavimo į dešimtainis procesas.

3 pavyzdys

Šiame pavyzdyje pamatysime, kas atsitiks, jei patikrinsime stol funkciją naudodami netinkamą įvestį. Stol funkcijai bus pateikta kelių simbolių eilutė, o 0 bus pateikta kaip pagrindinė reikšmė, kad funkcija automatiškai nustatytų eilutės pagrindą. Štai kodas:

Simbolių rinkinys pateikiamas kaip įvesties eilutė, kuri nenustatoma jokiomis bazinėmis reikšmėmis, t. y. 10, 16, 2 ir t. t., todėl funkcija pateiks klaidos reikšmę.

#include

#include

#include

tarpt pagrindinis ( )

{

std :: styga chr = 'abcdefgh' ;

std :: styga :: dydis_type dydis ;
ilgai g = std :: stalo ( chr, nullptr , 0 ) ;
std :: cout << 'Įvesti simbolių eilutę' << chr << ' konvertuota į ilgą int ' << g << ' \n ' ;
grąžinti 0 ;


}

Žiūrėkite išvestį žemiau. Atminkite, kad kompiliatorius iškėlė „invalid_argument“ išimtį, nes funkcija neaptarnauja eilučių, kurių negalima nustatyti jokia bazine reikšme.

4 pavyzdys

Šiame pavyzdyje pateiksime galiojančios ir netinkamos įvesties derinį, kad pamatytume funkcijos stol() rezultatą.

Įvesties eilutė yra galiojančių ir netinkamų simbolių „123xf25“ derinys. „0“ pateikiamas kaip įvesties bazė, todėl funkcija automatiškai nustato įvesties eilutės pagrindą pagal simbolių tipą.

#include

#include

#include

tarpt pagrindinis ( )

{

std :: styga chr = '123xf25' ;
std :: styga :: dydis_type dydis ;
ilgai g = std :: stalo ( chr, nullptr , 0 ) ;
std :: cout << 'Įvesties eilutė' << chr << ' konvertuota į ilgą int ' << g << ' \n ' ;
grąžinti 0 ;


}

Štai išvestis, rodanti stol funkcijos veikimą derinant galiojančią ir netinkamą įvestį:

Atminkite, kad funkcija „123“ konvertavo į dešimtainį skaičių „123“, o likusią eilutės dalį atmetė, nes gavo neteisingą įvestį „x“. Eilutė po simbolio „x“ nekonvertuojama naudojant stol funkciją, grąžinant tik pirmuosius eilutės simbolius kaip ilgas int.

Išvada

Šiame įraše mes ištyrėme C++ programavimo kalbos stol funkciją. Naudodamiesi keletu naudingų ir paprastų pavyzdžių, sužinojome, kaip stol funkcija veikia su įvairių tipų įvestimis. Funkcija stol turi tris parametrus: įvesties eilutę, kuri turi būti konvertuojama, dydžio parametrą, nurodantį funkcijos vietą eilutėje, ir bazinę reikšmę, kuri reiškia įvesties eilutės bazę. Jis grąžina įvesties eilutės ilgąją int reikšmę.