Функция stoi
Функция stoi преобразует строку в целое число типа int. В первый параметр мы передаем строку, которую необходимо преобразовать. Второй параметр задает позицию, с которой следует начинать разбор, а третий - основание системы счисления (по умолчанию 10). Если преобразование невозможно, функция выбрасывает исключение std::invalid_argument, а если число выходит за пределы типа int - исключение std::out_of_range.
Синтаксис
int stoi(const string& str, size_t* pos = nullptr, int base = 10)
Пример
Давайте преобразуем строку "12345" в целое число и выведем результат:
#include <iostream>
#include <string>
using namespace std;
int main()
{
string str = "12345";
int num = stoi(str);
cout << num << endl;
return 0;
}
Результат выполнения кода:
12345
Пример
Давайте преобразуем строку "1010", interpreted как двоичное число, и выведем результат:
#include <iostream>
#include <string>
using namespace std;
int main()
{
string str = "1010";
int num = stoi(str, nullptr, 2);
cout << num << endl;
return 0;
}
Результат выполнения кода:
10
Пример
Давайте преобразуем строку "123abc" и узнаем, на каком символе остановился разбор:
#include <iostream>
#include <string>
using namespace std;
int main()
{
string str = "123abc";
size_t pos = 0;
int num = stoi(str, &pos);
cout << num << endl;
cout << pos << endl;
return 0;
}
Результат выполнения кода:
123
3