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

std::stoul, std::stoull

Материал из cppreference.com
< cpp‎ | string‎ | basic string
 
 
 
std::basic_string
Функции, не являющиеся членами
(C++11)(C++11)(C++11)
stoulstoull
(C++11)(C++11)
(C++11)(C++11)(C++11)
(C++11)
(C++11)
Вспомогательные классы
Правила вывода типов(C++17)
 
Определён в заголовочном файле <string>
unsigned long      stoul( const std::string& str, size_t *pos = 0, int base = 10 );
(1) (начиная с C++11)
unsigned long long stoull( const std::string& str, size_t *pos = 0, int base = 10 );
(2) (начиная с 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, если преобразованное значение будет выходить за границы диапазона значений типа результата

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

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