std::stoi Funktion i C++
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
Inmatning : 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++
// 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
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.
Extra utrymme: O(1)