strtoumax
, , _strtoumax_l
wcstoumax
_wcstoumax_l
Преобразует строку в целочисленное значение наибольшего поддерживаемого целочисленного типа без знака.
Синтаксис
uintmax_t strtoumax(
const char *strSource,
char **endptr,
int base
);
uintmax_t _strtoumax_l(
const char *strSource,
char **endptr,
int base,
_locale_t locale
);
uintmax_t wcstoumax(
const wchar_t *strSource,
wchar_t **endptr,
int base
);
uintmax_t _wcstoumax_l(
const wchar_t *strSource,
wchar_t **endptr,
int base,
_locale_t locale
);
Параметры
strSource
Строка, завершающаяся символом NULL, для преобразования.
endptr
Указатель на символ, который останавливает сканирование.
base
Используемое числовое основание.
locale
Используемый языковой стандарт.
Возвращаемое значение
Функция strtoumax
возвращает преобразованное значение, если таковое имеется, или UINTMAX_MAX
в случае переполнения. Функция strtoumax
возвращает 0, если преобразование не может быть выполнено. wcstoumax
возвращает значения аналогично strtoumax
. Для обеих функций при возникновении переполнения или потери значимости для параметра errno
устанавливается значение ERANGE
.
Дополнительные сведения о кодах возврата см. в разделе errno
, _doserrno
_sys_errlist
и _sys_nerr
.
Замечания
Эти функции преобразуют входную строку strSource
в целое значение uintmax_t
.
strtoumax
останавливает чтение строки strSource
на первом символе, которую невозможно распознать как часть числа. Это может быть завершающий пустой символ, или это может быть первый числовый символ, который больше или равен base
. Параметр категории LC_NUMERIC
языкового стандарта определяет распознавание символа основания системы счисления в strSource
. Дополнительные сведения см. в разделе setlocale
, _wsetlocale
. strtoumax
и wcstoumax
используют текущий языковой стандарт; _strtoumax_l
и _wcstoumax_l
идентичны, за исключением того, что они используют переданный языковой стандарт. Дополнительные сведения см. в разделе Locale.
Если endptr
это не NULL
так, указатель на символ, который остановил сканирование, хранится в расположении, на которое указывает endptr
. Если не удается выполнить преобразование (не найдены допустимые цифры или указано недопустимое основание), значение strSource
сохраняется в расположении, указанном endptr
.
wcstoumax
— это версия strtoumax
с расширенными символами; ее аргумент strSource
— строка расширенных символов. В остальном эти функции работают одинаково.
Сопоставления подпрограмм универсального текста
Подпрограмма TCHAR.H | _UNICODE и _MBCS не определен |
_MBCS Определенные |
_UNICODE Определенные |
---|---|---|---|
_tcstoumax |
strtoumax |
strtoumax |
wcstoumax |
_tcstoumax_l |
strtoumax_l |
_strtoumax_l |
_wcstoumax_l |
Функция strtoumax
ожидает, что 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, строка интерпретируется как десятичное целое число. Буквам от а до z (или от А до Z) присваиваются значения от 10 до 35. Допускаются только буквы с присвоенными значениями меньше base
. Первый символ за пределами диапазона основания останавливает сканирование. Например, если значение base
равно 0 и первый считанный символ — "0", то предполагается восьмеричное целое число, и символ "8" или "9" остановит сканирование. strtoumax
позволяет префикс знака плюса (+
) или минуса (-
), а знак "минус" — знак "минус", указывающий, что возвращаемое значение является дополнением двух абсолютных значений преобразованной строки.
Требования
Маршрут | Обязательный заголовок |
---|---|
strtoumax , , wcstoumax _strtoumax_l _wcstoumax_l |
<inttypes.h> |
Дополнительные сведения о совместимости см. в разделе Совместимость.
Пример
Пример см. в примере strtod
.
См. также
Преобразование данных
Локаль
localeconv
setlocale
, _wsetlocale
Строки в числовые функции значений
strtod
, , _strtod_l
wcstod
_wcstod_l
strtoimax
, , _strtoimax_l
wcstoimax
_wcstoimax_l
strtol
, , wcstol
_strtol_l
_wcstol_l
strtoul
, , _strtoul_l
wcstoul
_wcstoul_l
strtoll
, , _strtoll_l
wcstoll
_wcstoll_l
atof
, , _atof_l
_wtof
_wtof_l