Функция strtoul

#include <stdlib.h>
unsigned long int strtoul(const char *start, char **end, int radix);
Функция strtoul() преобразует строковое представление числа, которое содержится в строке, адресуемой параметром start, в значение типа unsigned long и возвращает полученный результат. Основание системы счисления, в которой представлено число, определяется параметром radix. Если значение radix равно нулю, то основание определяется так же, как и основание системы счисления при записи констант. Если значение radix не равно нулю, то оно должно быть целым числом от 2 до 36.

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

Функция strtoul() работает следующим образом:

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

"100 клещей"
то она возвратит значение

100L
а параметр end будет указывать на пробел, предшествующий слову

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


Пример

Следующая функция может использоваться для чтения из стандартного входного потока числа, представленного в шестнадцатеричной системе счисления. Данная функция возвращает результат (целое число) типа unsigned long.
unsigned long int read_unsigned_long(void)
{
char start[80], *end;

printf("Введите шестнадцатеричное число: ");
gets(start);
return strtoul(start, &end, 16);
}



Зависимые функции

strtoll() ( http://c2p.ru/c/strtoll.html )
strtol() ( http://c2p.ru/c/strtol.html )

Оригинал новости «Функция strtoul»  - http://c2p.ru/c/strtoul.html
«Программирование на C, C++, Java, .NET»  - http://c2p.ru/index.php