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:
- Den streng, der skal transformeres, er den første parameter.
- 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.
- 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å tastaturetInput : 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)