Справочник по C/C++
strtoul()

#include <stdlib.h>
unsigned long int strtoul(const char *start, char **end, int radix);

Описание

Преобразует строковое представление числа в значение типа unsigned long

Функция strtoul() преобразует строковое представление числа, которое содержится в строке, адресуемой параметром start, в значение типа unsigned long и возвращает полученный результат. Основание системы счисления, в которой представлено преобразуемое число, определяется параметром radix. Если значение radix равно нулю, то основание определяется(по первым символам строки) согласно правилам, которые диктуют использование определенных спецификаций. Если значение radix задается и не равно нулю, то оно должно находиться в диапазоне 2-36.

В версии С99 к параметрам start и end применен квали-фикатор restrict.

Функция strtoul() работает следующим образом. Сначала в строке, адресуемой параметром start, удаляется любой пробельный символ. Затем читается каждый символ, составляющий число, Любой символ, который не может быть частью длинного целого числа без знака, приведет к остановке процесса преобразования. Имеются в виду пробельные символы, знаки препинания и символы. Наконец, параметр end устанавливается так, чтобы указывать на "непреобразованный" остаток исходной строки, если таковой существует. Это означает, что если функция strtoul() вызывается с аргументом "100 Pliers", то она возвратит значение 100L, а параметр end будет указывать на пробел, предшествующий слову " Pliers".

Если результат не может быть представлен как длинное целое значение без знака, функция strtoul() возвращает значение ULONG_MAX, а глобальная переменная errno устанавливается равной значению ERANGE, свидетельствующему об ошибке пределов диапазона. Если параметр start не указывает на число, никакого преобразования не выполняется и функция возвращает нуль.



Реклама