std::stoi, std::stol, std::stoll
| Определено в заголовочном файле <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.
Отбрасывает любые пробельные символы (определяемые вызовом std::isspace) до тех пор, пока не будет найден первый непробельный символ, а затем берёт как можно больше символов для формирования действительного по основанию-n (где n=base) представления целых чисел и преобразует их в целочисленное значение. Действительное целочисленное значение состоит из следующих частей:
- (необязательно) знак плюс или минус
- (необязательно) префикс (
0), указывающий восьмеричное основание (применяется, только если основание равно8или0) - (необязательно) префикс (
0xили0X), указывающий шестнадцатеричное основание (применяется, только если основание равно16или0) - последовательность цифр.
Набор допустимых значений для системы счисления {0,2,3,...,36}. Набор допустимых цифр для целых чисел с основанием 2 это {0,1}, для целых чисел с основанием 3 равен {0,1,2}, и так далее. Для оснований, превышающих 10, допустимые цифры включают буквенные символы, начиная с Aa для целого числа с основанием 11, до Zz для целого числа с основанием 36. Регистр символов игнорируется.
Дополнительные числовые форматы могут быть приняты текущей установленной локалью C.
Если значение base равно 0, то система счисления определяется автоматически: если присутствует префикс 0, то она восьмеричная, если префикс 0x или 0X, то шестнадцатеричная, иначе десятичная.
Если знак минус был частью входной последовательности, числовое значение, вычисленное из последовательности цифр, инвертируется, как если бы был унарный минус в типе результата.
Индекс первого непреобразованного символа сохраняется в 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) |
преобразует строку в значение с плавающей запятой (функция) |
(C++11) |
преобразует целое значение или значение с плавающей запятой в string (функция) |