strtoul
, , _strtoul_l
wcstoul
_wcstoul_l
Преобразует строки в длинное целое число без знака.
Синтаксис
unsigned long strtoul(
const char *strSource,
char **endptr,
int base
);
unsigned long _strtoul_l(
const char *strSource,
char **endptr,
int base,
_locale_t locale
);
unsigned long wcstoul(
const wchar_t *strSource,
wchar_t **endptr,
int base
);
unsigned long _wcstoul_l(
const wchar_t *strSource,
wchar_t **endptr,
int base,
_locale_t locale
);
Параметры
strSource
Строка, завершающаяся символом NULL, для преобразования.
endptr
Указатель на символ, который останавливает сканирование.
base
Используемое числовое основание.
locale
Используемый языковой стандарт.
Возвращаемое значение
Функция strtoul
возвращает преобразованное значение, если таковое имеется, или ULONG_MAX
в случае переполнения. Функция strtoul
возвращает 0, если преобразование не может быть выполнено. wcstoul
возвращает значения аналогично strtoul
. Для обеих функций при возникновении переполнения или потери значимости для параметра errno
устанавливается значение ERANGE
.
Дополнительные сведения о кодах возврата см. в разделе errno
, _doserrno
_sys_errlist
и _sys_nerr
.
Замечания
Эти функции преобразуют входную строку strSource
в целое значение unsigned long
.
strtoul
останавливает чтение строки strSource
на первом символе, которую невозможно распознать как часть числа. Этот символ может быть завершающим NULL
, или он может быть первым числовым символом, превышающим или равным base
. Параметр LC_NUMERIC
категории языкового стандарта определяет распознавание символа радикса в strSource
; дополнительные сведения см. в разделе setlocale
. Функции strtoul
и wcstoul
используют текущий языковой стандарт. Функции _strtoul_l
и _wcstoul_l
идентичны, за исключением того, что они используют переданный языковой стандарт. Дополнительные сведения см. в разделе Locale.
Если endptr
это не NULL
так, указатель на символ, который остановил сканирование, хранится в расположении, на которое указывает endptr
. Если не удается выполнить преобразование (не найдены допустимые цифры или указано недопустимое основание), значение strSource
сохраняется в расположении, указанном endptr
.
wcstoul
— это версия strtoul
с расширенными символами; ее аргумент strSource
— строка расширенных символов. В остальном эти функции работают одинаково.
По умолчанию глобальное состояние этой функции ограничивается приложением. Чтобы изменить это поведение, см . статью "Глобальное состояние" в CRT.
Сопоставления подпрограмм универсального текста
TCHAR.H рутина |
_UNICODE и _MBCS не определен |
_MBCS Определенные |
_UNICODE Определенные |
---|---|---|---|
_tcstoul |
strtoul |
strtoul |
wcstoul |
_tcstoul_l |
strtoul_l |
_strtoul_l |
_wcstoul_l |
Функция strtoul
ожидает, что strSource
указывает на строку следующего вида:
[whitespace] [{+ | -}] [0 [{ x | X }]] [digits | letters]
Может whitespace
состоять из пробелов и символов табуляции, которые игнорируются. digits
— это одна или несколько десятичных цифр. letters
— это одна или несколько букв a
через z
(или A
через Z
). Первый символ, который не соответствует этой форме, останавливает сканирование. Если base
значение от 2 до 36, оно используется в качестве основы числа. Если base
равно 0, то начальные символы строки, на которую указывает strSource
, используются для определения основания. Если первый символ равен 0, а второй символ не x
равен или X
строка интерпретируется как восьмеричное целое число. Если первый символ равен "0", а второй x
— или X
строка интерпретируется как шестнадцатеричное целое число. Если первый символ — от 1 до 9, строка интерпретируется как десятичное целое число. Буквы a
z
через (или A
через Z
) присваиваются значениям от 10 до 35; только буквы, назначенные значения которых меньше base
разрешены. Первый символ за пределами диапазона основания останавливает сканирование. Например, если значение base
равно 0 и первый считанный символ — "0", то предполагается восьмеричное целое число и символ "8" или "9" останавливает чтение. Функция strtoul
допускает в качестве префикса знаки плюс (+
) или минус (-
). Знак минус перед числом показывает, что возвращаемое значение отрицательное.
Требования
Маршрут | Обязательный заголовок |
---|---|
strtoul |
<stdlib.h> |
wcstoul |
<stdlib.h> или <wchar.h> |
_strtoul_l |
<stdlib.h> |
_wcstoul_l |
<stdlib.h> или <wchar.h> |
Дополнительные сведения о совместимости см. в разделе Совместимость.
Пример
Пример см. в примере strtod
.
См. также
Преобразование данных
Локаль
localeconv
setlocale
, _wsetlocale
Строки в числовые функции значений
strtod
, , _strtod_l
wcstod
_wcstod_l
strtol
, , wcstol
_strtol_l
_wcstol_l
atof
, , _atof_l
_wtof
_wtof_l