Функция stol
Функция stol (string to long) преобразует строку в длинное целое число типа long. В первый параметр мы передаем строку, которую необходимо преобразовать. Во второй параметр мы можем передать позицию указателя на символ, на котором остановился парсинг (по умолчанию nullptr). В третий параметр мы передаем основание системы счисления (по умолчанию 10).
Функция возвращает преобразованное значение типа long. Если преобразование невозможно, возвращается 0. Если значение выходит за пределы диапазона типа long, возвращается LONG_MAX или LONG_MIN, а переменная errno устанавливается в ERANGE.
Синтаксис
long int stol(const string& str, size_t* pos = nullptr, int base = 10);
Пример
Давайте преобразуем строку "12345" в число с основанием системы счисления по умолчанию:
#include <iostream>
#include <string>
using namespace std;
int main()
{
string str = "12345";
long int res = stol(str);
cout << res << endl;
return 0;
}
Результат выполнения кода:
12345
Пример
Давайте преобразуем строку "1010", которая представляет собой двоичное число, в десятичное значение:
#include <iostream>
#include <string>
using namespace std;
int main()
{
string str = "1010";
long int res = stol(str, nullptr, 2);
cout << res << endl;
return 0;
}
Результат выполнения кода:
10
Пример
Давайте преобразуем строку "123abc" и узнаем, на каком символе остановился парсинг:
#include <iostream>
#include <string>
using namespace std;
int main()
{
string str = "123abc";
size_t pos;
long int res = stol(str, &pos);
cout << "Number: " << res << endl;
cout << "Stop at index: " << pos << endl;
return 0;
}
Результат выполнения кода:
"Number: 123"
"Stop at index: 3"