Функция strtoul

Прототип функции 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;
}

Пример работы программы

CppStudio.com
Введите беззнаковое число: 553
Введенное значение: 553 удвоенное: 1106
Автор: admin
Дата: 02.09.2012
Поделиться:

Комментарии

Оставить комментарий

Вы должны войти, чтобы оставить комментарий.