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:
- Merkkijono, joka on muunnettava, on ensimmäinen parametri.
- Kokonaisluvun sijainti, jolla seurataan, kuinka monta merkkiä luettiin. Tässä skenaariossa sitä ei käytetä, jos tämä parametri on nollaosoitin.
- 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 excelSyö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)