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:

  1. Șirul care trebuie transformat este primul parametru.
  2. 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.
  3. 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)