Stoi() yra standartinė bibliotekos funkcija, kuri paverčia eilutę sveikuoju skaičiumi. C++ programuotojai naudoja funkciją, kuri reiškia eilutę į sveikąjį skaičių, kad gautų sveikuosius skaičius iš eilučių. Be to, funkcija stoi() gali pašalinti kitus komponentus, pvz., eilėje esančias raides.
Sintaksė:
int stoi (string s, size_t* position = 0, int base = 10)>
Parametrai:
- Eilutė, kurią reikia transformuoti, yra pirmasis parametras.
- Sveikojo skaičiaus vieta, naudojama norint sekti, kiek simbolių buvo perskaityta. Tokiu atveju jis nenaudojamas, jei šis parametras yra nulinis rodyklė.
- Trečias ir paskutinis parametras yra bazė. Sekos formatas nustato naudojamą bazę, jei ji yra 0. Ji naudoja 10 bazę (dešimtainė dalis), jei nepateikiamas joks argumentas.
Pavyzdžiai:
Įvestis: 1NoProgrammer;
Išvestis: 1
Įvestis : HelloWorld54;
Išvestis : terminate iškviečiamas išmetus „std::invalid_argument“ egzempliorių
Paaiškinimas: Tai sukelia klaidą, nes jei pirmasis simbolis yra ne sveikasis skaičius, funkcija stoi() baigiasi
mysql vartotojų sąrašasĮvestis : Turite 1 klaviatūrą;
Išvestis : terminate iškviečiamas išmetus „std::invalid_argument“ egzempliorių
kas(): stovi
Grąžinimo tipas: Argumento eilutės reikšmė perduota stovint () funkcija grąžinama kaip sveikasis skaičius.
Kaip tai veikia?
Funkcija stoi(), kuri priima eilutę kaip argumentą, gali konvertuoti sveikąjį eilutės komponentą į sveikojo skaičiaus tipą. Ji atsižvelgs tik į sveikuosius skaičius iki pirmojo ne sveikojo skaičiaus elemento arba eilutės pabaigos.
Kai vykdysime toliau pateiktą programą, vykdymo metu bus sukurta klaida. Taip yra dėl to, kad funkcija stoi() nustoja eiti per eilutę, kai susiduria su ne sveikuoju skaičiumi arba tarpo simboliu. Funkcija stoi() išjungiama, jei pradinis simbolis yra ne sveikasis skaičius.
Pavyzdys:
C++
javascript if teiginys
// 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;> }> |
>
>
Java pavyzdys
terminate called after throwing an instance of 'std::invalid_argument' what(): stoi>
Tai rodo klaidą, nes funkcija stoi() susiduria su tarpo simboliu prieš 1.
Pavyzdys:
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;> }> |
>
>Išvestis
2009, techcodeview.com_founded: 2009 0x6C1: 1729 -10010010101: -1173>
Laiko sudėtingumas: O(n) // n yra eilutės ilgis.
ddl vs dml
Pagalbinė erdvė: O(1)