Пространства имён
Варианты
Действия

std::stoi, std::stol, std::stoll

Материал из cppreference.com
< cpp‎ | string‎ | basic string
 
 
 
std::basic_string
Функции-члены
basic_string::basic_string
basic_string::operator=
basic_string::assign
basic_string::get_allocator
Доступ к элементам
basic_string::at
basic_string::operator[]
basic_string::front(C++11)
basic_string::back(C++11)
basic_string::data
basic_string::c_str
Итераторы
basic_string::begin
basic_string::cbegin

(C++11)
basic_string::end
basic_string::cend

(C++11)
basic_string::rbegin
basic_string::crbegin

(C++11)
basic_string::rend
basic_string::crend

(C++11)
Вместимость
basic_string::empty
basic_string::size
basic_string::length
basic_string::max_size
basic_string::reserve
basic_string::capacity
basic_string::shrink_to_fit(C++11)
Операции
basic_string::clear
basic_string::insert
basic_string::erase
basic_string::push_back
basic_string::pop_back(C++11)
basic_string::append
basic_string::operator+=
basic_string::compare
basic_string::replace
basic_string::substr
basic_string::copy
basic_string::resize
basic_string::swap
Поиск
basic_string::find
basic_string::rfind
basic_string::find_first_of
basic_string::find_first_not_of
basic_string::find_last_of
basic_string::find_last_not_of
Константы
basic_string::npos
Функции, не являющиеся членами
operator+
operator==
operator!=
operator<
operator>
operator<=
operator>=
swap(std::basic_string)
operator<<
operator>>
getline
stoi
stol
stoll
(C++11)
(C++11)
(C++11)
stoul
stoull
(C++11)
(C++11)
stof
stod
stold
(C++11)
(C++11)
(C++11)
to_string(C++11)
to_wstring(C++11)
Вспомогательные классы
hash<std::string>
hash<std::wstring>
hash<std::u32string>
hash<std::u16string>
(C++11)
 
Определено в заголовочном файле <string>
int       stoi( const std::string& str, size_t *pos = 0, int base = 10 );
(1) (начиная с C++11)
long      stol( const std::string& str, size_t *pos = 0, int base = 10 );
(2) (начиная с C++11)
long long stoll( const std::string& str, size_t *pos = 0, int base = 10 );
(3) (начиная с C++11)

Извлекает знаковое целое число из строки str.

Пропускаются все пробельные символы (которые определяются таковыми с помощью вызова функции isspace()), до тех пор пока не встретится первый символ другого типа, затем берётся как много больше символов, которые формируют корректную запись целочисленного числа в n-системе счисления (где n = base) , и конвертирует её в значение нужного типа. Корректная запись целого числа состоит из следующих частей:

  • (необязательно) знак плюса или минуса
  • (необязательно) префикс (0), который обозначает использование 8-ричной системы счисления (применимо только тогда, когда base равен 8 или 0)
  • (необязательно) префикс (0x или 0X), который обозначает использование 16-ричной системы счисления (применимо только тогда, когда base равен 16 или 0)
  • последовательность цифр.

Допустимый набор цифр для 2-ричной системы счисления - 01, для 3-ичной - 012 и так далее, начиная с 11-ричной системы счисления в диапазон допустимых цифр входят латинские буквы от Aa до Zz для 36-ричной системы счисления. В этом случае регистр букв не имеет значения.

Дополнительные форматы для чисел могут применяться, используя региональные параметры Си.

Если значение base равно 0, то система счисления автоматически определяется: если присутствует префикс 0, то она 8-ричная, если 0x или 0X, то 16-ричная, иначе 10-ричная.

Если знак минуса был частью входной последовательности, то числовое значение вычисляется, путём применения к числу из последовательности цифр операции унарного минуса.

Индекс первого непреобразованного символа сохраняется в pos. Если в качестве pos передан NULL, параметр игнорируется.

Содержание

[править] Параметры

str - строка для преобразования
pos - адрес переменной целочисленного типа для сохранения в ней индекса первого непреобразованного символа
base - основание системы счисления

[править] Возвращаемое значение

Строка, преобразованная в указанный знаковый целочисленный тип.

[править] Исключения

  • std::invalid_argument, если преобразование не может быть выполнено
  • std::out_of_range, если преобразованное значение будет выходить за границы диапазона значений типа результата

[править] Пример

#include <iostream>
#include <string>
 
int main()
{
    std::string test = "45";
    int myint = stoi(test);
    std::cout << myint << '\n';
}

Вывод:

45

[править] См. также

Преобразует однобайтовую строку в целое число
(функция) [править]
(C++11)
(C++11)
преобразует строку в беззнаковое целое число
(функция) [править]
(C++11)
(C++11)
(C++11)
преобразует строку в число с плавающей точкой
(функция) [править]
(C++11)
преобразует целое число или число с плавающей точкой в string
(функция) [править]