Funcția std::stoi în C++
Stoi() este o funcție standard de bibliotecă care transformă un șir într-un număr întreg. Programatorii C++ folosesc funcția, care înseamnă șir la întreg, pentru a obține numere întregi din șiruri. În plus, funcția stoi() poate elimina alte componente, cum ar fi literele finale din șir.
Sintaxă:
int stoi (string s, size_t* position = 0, int base = 10)
Parametri:
- Șirul care trebuie transformat este primul parametru.
- Locația unui număr întreg folosit pentru a urmări câte caractere au fost citite. În acest scenariu, nu este utilizat dacă acest parametru este un pointer nul.
- Al treilea și ultimul parametru este baza. Formatul secvenței determină baza utilizată dacă aceasta este 0. Folosește baza 10 (zecimală) dacă nu este transmis niciun argument.
Exemple:
Intrare: 1Fără programator;
Ieșire: 1
Intrare : HelloWorld54;
Ieșire : terminate apelat după ce a lansat o instanță de „std::invalid_argument”
Explicaţie: Acest lucru dă o eroare, deoarece dacă primul caracter nu este un întreg, funcția stoi() se termină
Intrare : Ai 1 tastatură;
Ieșire : terminate apelat după ce a lansat o instanță de „std::invalid_argument”
ce(): stă
Tip returnare: Valoarea șirului unui argument transmis către permanent() funcția este returnată ca număr întreg.
Cum functioneaza?
Funcția stoi(), care acceptă un șir ca argument, poate converti componenta întreagă a unui șir într-un tip întreg. Acesta va lua în considerare numai valori întregi până la primul element non-intreg sau la sfârșitul șirului.
Când executăm programul de mai jos, va fi produsă o eroare în timpul execuției. Acest lucru se datorează faptului că funcția stoi() încetează să traverseze șirul atunci când întâlnește un caracter non-întreg sau un caracter de spațiu alb. Funcția stoi() iese dacă caracterul inițial nu este un întreg.
Exemplu:
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;> }> |
terminate called after throwing an instance of 'std::invalid_argument' what(): stoi
Dă o eroare deoarece funcția stoi() întâlnește un caracter alb înainte de 1.
Exemplu:
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;> }> |
Ieșire
2009, techcodeview.com_founded: 2009 0x6C1: 1729 -10010010101: -1173
Complexitatea timpului: O(n) // n este lungimea șirului.
Spatiu auxiliar: O(1)