Funkcija std::stoi v C++

Stoi() je standardna knjižnična funkcija, ki pretvori niz v celo število. Programerji C++ uporabljajo funkcijo, ki pomeni string to integer, za pridobivanje celih števil iz nizov. Poleg tega lahko funkcija stoi() iz niza odstrani druge komponente, kot so končne črke.

Sintaksa:

int stoi (string s, size_t* position = 0, int base = 10) 

Parametri:

  1. Niz, ki ga je treba transformirati, je prvi parameter.
  2. Lokacija celega števila, ki se uporablja za spremljanje števila prebranih znakov. V tem scenariju se ne uporablja, če je ta parameter ničelni kazalec.
  3. Tretji in zadnji parameter je osnova. Format zaporedja določa uporabljeno osnovo, če je ta 0. Uporablja osnovo 10 (decimalno), če ni posredovan noben argument.

Primeri:

Vnos: 1NoProgrammer;

Izhod: 1

Vnos : HelloWorld54;

Izhod : prekini klicano po vrženju primerka 'std::invalid_argument'

Pojasnilo: To povzroči napako, ker če prvi znak ni celo število, se funkcija stoi() zaključi

Vnos : Imate 1 tipkovnico;

Izhod : prekini klicano po vrženju primerka 'std::invalid_argument'

kaj(): stoji

Vrsta vračila: Vrednost niza argumenta, posredovanega v stoji() funkcija je vrnjena kot celo število.

Kako deluje?

Funkcija stoi(), ki sprejme niz kot argument, lahko pretvori celoštevilsko komponento niza v celoštevilski tip. Upošteval bo samo celoštevilske vrednosti do prvega neceloštevilskega elementa ali konca niza.

Ko izvedemo spodnji program, se med izvajanjem prikaže napaka. To je posledica dejstva, da funkcija stoi() preneha prečkati niz, ko naleti na znak, ki ni celo število, ali na presledek. Funkcija stoi() se izklopi, če začetni znak ni celo število.

primer:

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 

Prikaže napako, ker funkcija stoi() naleti na presledek pred 1.

primer:

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

Izhod

2009, techcodeview.com_founded: 2009 0x6C1: 1729 -10010010101: -1173 

Časovna zahtevnost: O(n) // n je dolžina niza.

Pomožni prostor: O(1)