logo

std::stoi Funktion i C++

Stoi() er en standard biblioteksfunktion, der forvandler en streng til et heltal. C++-programmører bruger funktionen, som står for streng til heltal, til at hente heltal fra strenge. Derudover kan stoi()-funktionen fjerne andre komponenter, såsom efterfølgende bogstaver fra strengen.

Syntaks:



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

Parametre:

  1. Den streng, der skal transformeres, er den første parameter.
  2. Placering af et heltal, der bruges til at spore, hvor mange tegn der blev læst. I det scenarie bruges den ikke, hvis denne parameter er en nul-pointer.
  3. Den tredje og sidste parameter er base. Sekvensens format bestemmer den anvendte base, hvis denne er 0. Den bruger base 10 (decimal), hvis intet argument sendes.

Eksempler:

Input: 1NoProgrammer;



Produktion: 1

Input : HelloWorld54;

Produktion : terminate kaldet efter at have kastet en forekomst af 'std::invalid_argument'



Forklaring: Dette giver en fejl, fordi hvis det første tegn er ikke-heltal, stopper stoi()-funktionen

hvad er f5 på tastaturet

Input : Du har 1 tastatur;

Produktion : terminate kaldet efter at have kastet en forekomst af 'std::invalid_argument'

hvad(): står

Returtype: Strengværdien af ​​et argument sendt til stående() funktion returneres som et heltal.

Hvordan det virker?

Stoi()-funktionen, som accepterer en streng som et argument, kan konvertere heltalskomponenten i en streng til en heltalstype. Det vil kun overveje heltalsværdier op til det første ikke-heltalselement eller slutningen af ​​strengen.

Når vi udfører nedenstående program, vil der blive produceret en fejl under kørsel. Dette skyldes det faktum, at stoi()-funktionen stopper med at krydse strengen, når den støder på et ikke-heltalstegn eller et mellemrumstegn. Stoi()-funktionen afsluttes, hvis starttegnet er et ikke-heltal.

np.sammenkæde

Eksempel:

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

>

>

sortere en arraylist i java
terminate called after throwing an instance of 'std::invalid_argument' what(): stoi>

Det giver en fejl, fordi stoi()-funktionen støder på et mellemrumstegn før 1.

Eksempel:

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

>

>

Produktion

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

Tidskompleksitet: O(n) // n er længden af ​​strengen.

import myre

Hjælpeplads: O(1)