De stoi() is een standaardbibliotheekfunctie die een string in een geheel getal verandert. C++-programmeurs gebruiken de functie, die staat voor string tot geheel getal, om gehele getallen uit strings te verkrijgen. Bovendien kan de functie stoi() andere componenten verwijderen, zoals volgletters uit de tekenreeks.
Syntaxis:
int stoi (string s, size_t* position = 0, int base = 10)>
Parameters:
- De string die moet worden getransformeerd is de eerste parameter.
- Locatie van een geheel getal dat wordt gebruikt om bij te houden hoeveel tekens er zijn gelezen. In dat scenario wordt deze niet gebruikt als deze parameter een nulaanwijzer is.
- De derde en laatste parameter is basis. Het formaat van de reeks bepaalt het grondtal dat wordt gebruikt als dit 0 is. Het gebruikt grondtal 10 (decimaal) als er geen argument wordt doorgegeven.
Voorbeelden:
Invoer: 1NoProgrammer;
Uitgang: 1
Invoer : HalloWereld54;
Uitvoer : beëindigen aangeroepen na het genereren van een exemplaar van ‘std::invalid_argument’
Uitleg: Dit geeft een foutmelding omdat als het eerste teken een niet-geheel getal is, de stoi()-functie wordt beëindigd
Java-datum actueelInvoer : Je hebt 1 toetsenbord;
Uitvoer : beëindigen aangeroepen na het genereren van een exemplaar van ‘std::invalid_argument’
wat(): staat
Retourtype: De tekenreekswaarde van een argument dat wordt doorgegeven aan de staand() functie wordt geretourneerd als een geheel getal.
Hoe het werkt?
De stoi()-functie, die een string als argument accepteert, kan de integer-component van een string converteren naar een integer-type. Er wordt alleen rekening gehouden met gehele waarden tot aan het eerste niet-gehele element of het einde van de tekenreeks.
Wanneer we het onderstaande programma uitvoeren, wordt er tijdens runtime een fout gegenereerd. Dit komt door het feit dat de functie stoi() stopt met het doorlopen van de string wanneer deze een niet-geheel teken of een witruimteteken tegenkomt. De functie stoi() wordt afgesloten als het initiële teken een niet-geheel getal is.
Voorbeeld:
C++
javascript laden
// 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;> }> |
>
>
sorteer een arraylist in Java
terminate called after throwing an instance of 'std::invalid_argument' what(): stoi>
Het geeft een foutmelding omdat de functie stoi() een witruimteteken tegenkomt vóór 1.
Voorbeeld:
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;> }> |
>
>Uitvoer
2009, techcodeview.com_founded: 2009 0x6C1: 1729 -10010010101: -1173>
Tijdcomplexiteit: O(n) // n is de lengte van de string.
zip-opdracht in Linux
Hulpruimte: O(1)