logo

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:

  1. Strängen som måste transformeras är den första parametern.
  2. 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.
  3. 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 java

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++

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)