La stoi() és una funció de biblioteca estàndard que converteix una cadena en un enter. Els programadors de C++ utilitzen la funció, que significa cadena a enter, per obtenir nombres enters de cadenes. A més, la funció stoi() pot eliminar altres components, com ara lletres al final de la cadena.
Sintaxi:
int stoi (string s, size_t* position = 0, int base = 10)>
Paràmetres:
- La cadena que s'ha de transformar és el primer paràmetre.
- Ubicació d'un nombre enter utilitzat per fer un seguiment de quants caràcters s'han llegit. En aquest escenari, no s'utilitza si aquest paràmetre és un punter nul.
- El tercer i últim paràmetre és la base. El format de la seqüència determina la base utilitzada si aquesta és 0. Utilitza la base 10 (decimal) si no es passa cap argument.
Exemples:
Entrada: 1Sense programador;
Sortida: 1
Entrada : HelloWorld54;
Sortida : termina cridat després de llançar una instància de 'std::invalid_argument'
Explicació: Això genera un error perquè si el primer caràcter no és enter, la funció stoi() finalitza
cadena d'entrada javaEntrada : tens 1 teclat;
Sortida : termina cridat després de llançar una instància de 'std::invalid_argument'
què(): es troba
Tipus de retorn: El valor de cadena d'un argument passat a dempeus () La funció es retorna com un nombre enter.
exemples nfa
Com funciona?
La funció stoi(), que accepta una cadena com a argument, pot convertir el component enter d'una cadena en un tipus enter. Només considerarà valors enters fins al primer element no enter o al final de la cadena.
Quan executem el programa següent, es produirà un error en temps d'execució. Això es deu al fet que la funció stoi() deixa de recórrer la cadena quan troba un caràcter no enter o un espai en blanc. La funció stoi() surt si el caràcter inicial no és un nombre enter.
Exemple:
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;> }> |
>
>
làtex de derivada parcial
terminate called after throwing an instance of 'std::invalid_argument' what(): stoi>
Està donant un error perquè la funció stoi() troba un caràcter d'espai en blanc abans d'1.
Exemple:
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;> }> |
>
>Sortida
2009, techcodeview.com_founded: 2009 0x6C1: 1729 -10010010101: -1173>
Complexitat temporal: O(n) // n és la longitud de la cadena.
wolverine vs teixó
Espai auxiliar: O(1)