logo

std::stoi Toiminto C++:ssa

Stoi() on tavallinen kirjastofunktio, joka muuttaa merkkijonon kokonaisluvuksi. C++-ohjelmoijat käyttävät funktiota, joka tarkoittaa merkkijonoa kokonaisluvuksi, saadakseen kokonaislukuja merkkijonoista. Lisäksi stoi()-funktio voi poistaa muita komponentteja, kuten merkkijonon lopussa olevia kirjaimia.

Syntaksi:



int stoi (string s, size_t* position = 0, int base = 10)>

Parametrit:

  1. Merkkijono, joka on muunnettava, on ensimmäinen parametri.
  2. Kokonaisluvun sijainti, jolla seurataan, kuinka monta merkkiä luettiin. Tässä skenaariossa sitä ei käytetä, jos tämä parametri on nollaosoitin.
  3. Kolmas ja viimeinen parametri on kanta. Sekvenssin muoto määrittää käytetyn kantaluvun, jos tämä on 0. Se käyttää kantalukua 10 (desimaali), jos argumenttia ei välitetä.

Esimerkkejä:

Syöte: 1NoProgrammer;



Lähtö: 1

Syöte : HelloWorld54;

Lähtö : terminate kutsutaan sen jälkeen, kun on heitetty esiintymä 'std::invalid_argument'



Selitys: Tämä antaa virheen, koska jos ensimmäinen merkki ei ole kokonaisluku, stoi()-funktio päättyy

mini työkalupalkki excel

Syöte : Sinulla on 1 näppäimistö;

Lähtö : terminate kutsutaan sen jälkeen, kun on heitetty esiintymä 'std::invalid_argument'

mikä(): seisoo

Palautustyyppi: Argumentin merkkijonoarvo, joka välitettiin arvolle seisoo () funktio palautetaan kokonaislukuna.

lataa youtube-videoita vlc:llä

Kuinka se toimii?

Stoi()-funktio, joka hyväksyy merkkijonon argumenttina, voi muuntaa merkkijonon kokonaislukukomponentin kokonaislukutyypiksi. Se ottaa huomioon vain kokonaislukuarvot ensimmäiseen ei-kokonaislukuelementtiin tai merkkijonon loppuun asti.

Kun suoritamme alla olevan ohjelman, ajon aikana syntyy virhe. Tämä johtuu siitä, että stoi()-funktio lopettaa merkkijonon kulkemisen, kun se kohtaa ei-kokonaisluvun tai välilyönnin. Stoi()-funktio poistuu, jos alkumerkki on ei-kokonaisluku.

Esimerkki:

C++




// C++ Program to convert> // string into integer> // Using stoi function> // Error occurred> #include> #include> using> namespace> std;> // Driver Code> int> main()> {> >string s =>'GeeksForGeeks 1'>;> >// calling stoi() passing string as parameter.> >int> n = stoi(s);> >cout << n;> }>

>

>

osittainen lateksijohdannainen
terminate called after throwing an instance of 'std::invalid_argument' what(): stoi>

Se antaa virheen, koska stoi()-funktio kohtaa välilyönnin ennen numeroa 1.

Esimerkki:

C++




// C++ Program to convert> // string into integer> // Using stoi> #include> #include> using> namespace> std;> // Driver Code> int> main()> {> >string str =>'2009, techcodeview.com_founded'>;> >string str1 =>'0x6C1'>;> >string str2 =>'-10010010101'>;> >// Calling stoi() for all strings.> >int> num = stoi(str);> >int> num_hex = stoi(str1, nullptr, 16);> >int> num_bin = stoi(str2, nullptr, 2);> >// printing converted values> >cout << str <<>': '> << num << endl;> >cout << str1 <<>': '> << num_hex << endl;> >cout << str2 <<>': '> << num_bin << endl;> >return> 0;> }>

>

>

Lähtö

2009, techcodeview.com_founded: 2009 0x6C1: 1729 -10010010101: -1173>

Aika monimutkaisuus: O(n) // n on merkkijonon pituus.

list.sort java

Aputila: O(1)