Stol()-funktio C++:ssa

Stol Funktio C Ssa



C++ on yksi suosituimmista ja vanhimmista ohjelmointikielistä, jota käytetään korkean suorituskyvyn sovellusten kehittämiseen. Sitä käytetään erittäin kokeneiden ohjelmoijien ja aloittelevien kehittäjien keskuudessa. Sitä käytetään pääasiassa pelien kehityksessä ja se on ihanteellinen vaihtoehto käyttöjärjestelmien kehittämiseen. Kun kirjoitat koodia C++-kielellä, saatat törmätä tietojen muuntamiseen tyypistä toiseen. Tässä artikkelissa opit muuttamaan merkkijonon pitkäksi kokonaisluvuksi. On melko vaikeaa muuntaa merkkijonoa mihinkään muuhun muotoon. C++-ohjelmointikieli tarjoaa kuitenkin nopean ja tehokkaan tavan muuntaa merkkijonot kokonaisluvuiksi.

stol Toiminto C++:ssa

Stol on C++:n sisäänrakennettu toiminto, joka tarjotaan std-kirjastossa. Se muuntaa merkkijonot pitkiksi kokonaislukuiksi. Se muuntaa merkkijonon sisällön määritetyn kantaluvun kokonaislukuksi ja palauttaa pitkän kokonaisluvun arvon. Se vaatii kolme parametria, joista yksi on syötemerkkijono, toinen on objektiparametri ja kolmas on numeerinen kanta. Stol-funktion syntaksi on annettu alla, katso:









Funktio stol ottaa kolme parametria: input_string, size ja base. 'Input_string' edustaa syötemerkkijonoa, joka on muutettava pitkäksi kokonaisluvuksi.



'Size'-parametri edustaa objektia, jonka tyyppi on koko_t ja joka kuljettaa seuraavan merkin paikan syöttömerkkijonossa numeerisen arvon jälkeen. Se voi olla tyhjä osoitin, jos sitä ei vaadita käyttämään.





Kolmas parametri, 'base'-parametri edustaa kantaa, jossa merkkijono on tulkittava. Jos esimerkiksi annetaan kantaluku '2', merkkijono tulkitaan kokonaislukukanta 2 -numeroksi. Perusparametrin oletusarvo on 10 ja jos 0 on annettu, perusarvo määräytyy sekvenssin muodon mukaan. Stol-funktio palauttaa pitkän kokonaisluvun, joka edustaa tietyn merkkijonon int-arvoa.

Tarkastellaan nyt joitain esimerkkejä ymmärtääksemme, kuinka stol-funktio toimii C++:ssa.



Esimerkki #1

Tässä esimerkissä tarjoamme desimaali- ja heksadesimaalimerkkijonoja tarkistaaksemme, kuinka stol-funktio muuntaa ne desimaali- ja heksadesimaalilukuiksi.

'dec = 123456789' on desimaalimerkkijono, joka muunnetaan pitkäksi kokonaisluvuksi käyttämällä stol-funktiota stol(dec,&size). Huomaa, että kantaa ei anneta funktiossa syöttöparametrina, mikä sen seurauksena käyttää oletuskantaa 10 muuntaakseen merkkijonon desimaaliluvuksi. Kuitenkin merkkijonon muuntamiseksi heksadesimaaliluvusta desimaaliluvuksi syöteparametriksi stol(hex, nullptr, 16) annetaan kantaluku 16. Kuten tiedämme, 16 kanta edustaa heksadesimaalilukua.

#include

#sisällytä

#include

int pää ( )

{

std :: merkkijono joulukuu = '123456789' ;
std :: merkkijono hex = 'a2bf3c' ;
std :: merkkijono :: Koko Tyyppi koko ;
pitkä lidec = std :: pöytä ( joulukuuta, & koko ) ;
pitkä lihex = std :: pöytä ( hex, nullptr , 16 ) ;
std :: cout << 'Syötä desimaalimerkkijono' << joulukuu << 'muunnettu pitkäksi int' << lidec << ' \n ' ;
std :: cout << 'Syötä heksadesimaalimerkkijono' << hex << 'muunnettu pitkäksi int' << lihex << ' \n ' ;
palata 0 ;


}

Tässä on seuraava tulos. Huomaa, että desimaalimerkkijono '123456789' muunnetaan '123456789' pitkäksi desimaaliluvuksi. Kun heksadesimaalimerkkijono 'a2bf3c' muutettiin '10665788' heksadesimaaliluvuksi. Tässä ovat pakolliset vaiheet, joita voit noudattaa saadaksesi tietää, kuinka stol-funktio tekee muunnoksen:

( A2BF3C ) ₁₆ = ( 10 × 16 ) + ( kaksi × 16 ) + ( yksitoista × 16 ³ ) + ( viisitoista × 16 ² ) + ( 3 × 16 ¹ ) + ( 12 × 16 ) = ( 10665788 ) ₁0

Esimerkki #2

Tässä esimerkissä muunnetaan binääriluku käyttämällä stol-funktiota. Katsotaanpa alla olevaa koodia ja ymmärretään koodin toiminta. '1010110110' annetaan syöttömerkkijonona ja kanta 2 on syötetyn perusparametri stol(bin,&size, 2), joka edustaa numeroa binäärimuodossa. Stol-funktio muuntaa binääriluvun desimaaliluvuksi seuraavasti:

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

#sisällytä

#include

int pää ( )

{

std :: merkkijono roskakori = '1010110110' ;
std :: merkkijono :: Koko Tyyppi koko ;
pitkä libin = std :: pöytä ( roskakori, & koko, kaksi ) ;
std :: cout << 'Syötä binäärimerkkijono' << roskakori << 'muunnettu pitkäksi int' << libin << ' \n ' ;
palata 0 ;


}

Kuten näet, stol-funktio palautti saman tuloksen kuin yleinen binääri-desimaalimuunnosprosessi.

Esimerkki #3

Tässä esimerkissä aiomme nähdä, mitä tapahtuu, jos testaamme stol-funktiota virheellisellä syötteellä. Stol-funktiolle tarjotaan useiden merkkien merkkijono ja perusarvona 0, jotta funktio määrittää merkkijonon perustan automaattisesti. Tässä on koodi:

Merkkijoukko tarjotaan syötemerkkijonona, jota ei määritetä perusarvoilla, eli 10, 16, 2 jne., joten funktio palauttaa virhearvon.

#include

#sisällytä

#include

int pää ( )

{

std :: merkkijono chr = 'abcdefgh' ;

std :: merkkijono :: Koko Tyyppi koko ;
pitkä str = std :: pöytä ( chr, nullptr , 0 ) ;
std :: cout << 'Syötä merkkijono' << chr << 'muunnettu pitkäksi int' << str << ' \n ' ;
palata 0 ;


}

Katso tulos alta. Huomaa, että kääntäjä on nostanut esiin 'invalid_argument' -poikkeuksen, koska funktio ei ota huomioon merkkijonoja, joita ei voida määrittää millään perusarvolla.

Esimerkki #4

Tässä esimerkissä tarjoamme kelvollisen ja virheellisen syötteen yhdistelmän nähdäksemme stol()-funktion tuloksen.

Syöttömerkkijono on kelvollisten ja virheellisten merkkien yhdistelmä '123xf25'. '0' on syöttöpohja, joten toiminto määrittää syötemerkkijonon kannan automaattisesti merkkien tyypin perusteella.

#include

#sisällytä

#include

int pää ( )

{

std :: merkkijono chr = '123xf25' ;
std :: merkkijono :: Koko Tyyppi koko ;
pitkä str = std :: pöytä ( chr, nullptr , 0 ) ;
std :: cout << 'Syötemerkkijono' << chr << 'muunnettu pitkäksi int' << str << ' \n ' ;
palata 0 ;


}

Tässä on tulos, joka näyttää stol-funktion toiminnan kelvollisen ja virheellisen syötteen yhdistelmällä:

Huomaa, että funktio muunsi '123' desimaaliluvuksi '123' ja hylkäsi loput merkkijonosta, koska se sai virheellisen syötteen 'x'. Merkin “x” jälkeistä merkkijonoa ei muunneta stol-funktiolla, vaan se palauttaa vain merkkijonon ensimmäiset merkit pitkänä int.

Johtopäätös

Tässä viestissä tutkimme C++-ohjelmointikielen stol-toimintoa. Hyödyllisten ja yksinkertaisten esimerkkien avulla opimme kuinka stol-funktio toimii erityyppisten tulojen kanssa. Stol-funktiossa on kolme parametria, muunnettava syöttömerkkijono, kokoparametri, joka edustaa funktion sijaintia merkkijonossa, ja perusarvo, joka edustaa syöttömerkkijonon kantaa. Se palauttaa syötemerkkijonon pitkän int-arvon.