Stoi() är en standardbiblioteksfunktion som förvandlar en sträng till ett heltal. C++-programmerare använder funktionen, som står för sträng till heltal, för att få heltal från strängar. Dessutom kan stoi()-funktionen ta bort andra komponenter, till exempel efterföljande bokstäver från strängen.
Syntax:
int stoi (string s, size_t* position = 0, int base = 10)>
Parametrar:
- Strängen som måste transformeras är den första parametern.
- Plats för ett heltal som används för att spåra hur många tecken som lästes. I det scenariot används den inte om den här parametern är en nollpekare.
- Den tredje och sista parametern är bas. Sekvensens format bestämmer basen som används om denna är 0. Den använder bas 10 (decimal) om inget argument skickas.
Exempel:
Inmatning: 1Ingen programmerare;
Produktion: 1
Inmatning : HelloWorld54;
Produktion : terminate anropas efter att ha kastat en instans av 'std::invalid_argument'
Förklaring: Detta ger ett fel eftersom om det första tecknet är icke-heltal avslutas stoi()-funktionen
primtal javaInmatning : Du har 1tangentbord;
Produktion : terminate anropas efter att ha kastat en instans av 'std::invalid_argument'
what(): står
Returtyp: Strängvärdet för ett argument som skickas till stående() funktion returneras som ett heltal.
Hur det fungerar?
Stoi()-funktionen, som accepterar en sträng som ett argument, kan konvertera heltalskomponenten i en sträng till en heltalstyp. Den kommer bara att beakta heltalsvärden upp till det första icke-heltalselementet eller slutet av strängen.
När vi kör programmet nedan kommer ett fel att skapas vid körning. Detta beror på att stoi()-funktionen slutar korsa strängen när den stöter på ett icke-heltalstecken eller ett blanksteg. Funktionen stoi() avslutas om det initiala tecknet är ett icke-heltal.
Exempel:
C++
allmänt skyddsfel
// 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;> }> |
>
>
partiellt derivat av latex
terminate called after throwing an instance of 'std::invalid_argument' what(): stoi>
Det ger ett fel eftersom stoi()-funktionen stöter på ett blanksteg före 1.
Exempel:
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>
Tidskomplexitet: O(n) // n är längden på strängen.
vad är myspace
Extra utrymme: O(1)