logo

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ă

aliniați imaginea cu css

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.

matrice dinamică în java

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;> }>

>

>

instanță de java
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.

java inversând un șir

Spatiu auxiliar: O(1)