Прототип функции strtoul:
unsigned long int strtoul( const char * string, char ** endptr, int basis );
Заголовочный файл
Название | Язык |
---|---|
stdlib.h | С |
cstdlib | С++ |
Описание
Преобразование строки в значение типа unsigned long int
. Анализируя строку string
, strtoul
интерпретирует её содержимое в без знаковое целое число типа unsigned long int
.
Функция сначала отбрасывает символы пробелов до тех пор, пока не будет найден символ отличный от символа пробела. Затем, начиная с этого символа, strtoul
считывает символы, удовлетворяющие синтаксису, который зависит от основания base, и интерпретирует их как числовые значения. И, наконец, устанавливается указатель endptr на первый символ, следующий за найденным беззнаковым целым значением строки string
.
Если значение basis
равно нулю, ожидается распознавание целого числа, которое формирует последовательность:
- Возможный префикс, указывающий основание, восьмеричное или шестнадцатеричное (
0
или0x
соответственно) - Последовательность десятичных цифр (если префикс указан в
basis
) или любая восьмеричная или шестнадцатеричной цифра, если определенный префикс присутствует в строке.
Если значение base находится между 2 и 36, ожидаемый формат — целое число, представляемое собой последовательность действительных цифр и/или букв в указанном основании системы счисления (начиная от 0
до z
/ Z
для системы счисления 36). В последовательности может присутствовать префикс 0x
или 0X
, если basis
равно 16.
Если первая последовательность не-пробельных символов в строке string
не является целым числом, или, если string
пустая или содержит только пробельные символы, преобразование не выполняется.
Параметры:
- string
Си-строка для выполнения преобразования.
- endptr
Ссылка на объект типаchar*
, значение которой содержит адрес следующего символа в строкеstring
, сразу после предыдущего найденного числа. Если этот параметр не используется, он должен быть нулевым указателем.
- basis
Основание системы исчисления.
Возвращаемое значение
В случае успеха, функция возвращает целое число преобразованное к типу данных unsigned long int
.
Если в строке не было найдено целое число, функция возвращает нулевое значение.
Если правильное значение выходит за диапазон принимаемых значений, возвращается LONG_MAX
или LONG_MIN
, и глобальная переменная ERRNO
устанавливается в ERANGE
. Обратите внимание на то, что ULONG_MAX
также является действительным возвращаемым значением (в данном случае ERRNO
не изменяет strtoul
).
Пример: исходный код программы
//пример использования функции strtoul #include <iostream> #include <cstdlib> int main() { char input [256]; std::cout << "Введите беззнаковое число: "; std::cin >> input; unsigned long ul = strtoul(input, NULL, 0); // преобразовать введенное строковое число в unsigned long std::cout << "Введенное значение: " << ul << " удвоенное: " << (ul * 2) << "n"; return 0; }
Пример работы программы
Введенное значение: 553 удвоенное: 1106
Комментарии