_strtoui64, _wcstoui64, _strtoui64_l, _wcstoui64_l
Преобразуют строку в беззнаковое __int64 значение.
unsigned __int64 _strtoui64(
const char *nptr,
char **endptr,
int base
);
unsigned __int64 _wcstoui64(
const wchar_t *nptr,
wchar_t **endptr,
int base
);
unsigned __int64 _strtoui64_l(
const char *nptr,
char **endptr,
int base,
_locale_t locale
);
unsigned __int64 _wcstoui64(
const wchar_t *nptr,
wchar_t **endptr,
int base,
_locale_t locale
);
Параметры
nptr
Строка, заканчивающаяся нулевым символом, для преобразования.endptr
Указатель на символ, который останавливает сканирование.base
Основание системы счисления, который следует использовать.locale
Языковой стандарт, который необходимо использовать.
Возвращаемое значение
_strtoui64возвращает значение, которое представлено в строке nptr, кроме случаев, когда представление вызвало бы переполнение; в этом случае возвращается значение _UI64_MAX _strtoui64возвращает 0, если преобразование не может быть выполнено.
_UI64_MAX определена в LIMITS.H.
Если nptr имеет значение NULL или base отлично от нуля или либо меньше 2 или больше 36, то параметр errno получает значение EINVAL.
Дополнительные сведения об этих и других кодах ошибок см. в разделе _doserrno, errno, _sys_errlist и _sys_nerr.
Заметки
Функция _strtoui64преобразует nptr в unsigned __int64. _wcstoui64 — это двухбайтовая версия _strtoui64; её аргумент nptr — строка двухбайтовых символов. В противном случае эти функции ведут себя идентично.
Обе функции прекращают чтение строки nptr на первом знаке, который они не могут распознать как часть числа. Это может быть конечный символ null или первый числовой символ, который больше или равен base.
Универсальное текстовое сопоставление функций
Подпрограмма TCHAR.H |
_UNICODE & _MBCS не определены |
_MBCS определено |
_UNICODE определено |
---|---|---|---|
_tcstoui64 |
_strtoui64 |
_strtoui64 |
_wstrtoui64 |
_tcstoui64_l |
_strtoui64_l |
_strtoui64_l |
_wstrtoui64_l |
Параметр категории LC_NUMERIC текущего языкового стандарта определяет распознавание символа системы счисления в nptr, дополнительные сведения см. в разделе setlocale. Функции, не имеющие суффикса _l, используют текущий языковой стандарт; _strtoui64_l и_wcstoui64_l идентичны соответствующим функциям, которые не имеют суффикса _l, за исключением того, что они используют переданный им языковой стандарт. Для получения дополнительной информации см. Языковой стандарт.
Если endptr не равен NULL, то указатель на символ, из-за которого было прекращено сканирование, хранится в ячейке памяти, на которую указывает endptr. Если преобразование не может быть выполнено (допустимые цифры не были найдены, или было указано недопустимое основание), то значение nptr хранится в ячейке памяти, на которую указывает endptr.
_strtoui64 ожидает, что nptr указывает на строку следующей формы:
[whitespace] [{+ | –}] [0 [{ x | X }]] [digits]
whitespace может состоять из пробелов и символов табуляции, которые игнорируются; digits — одна или несколько десятичных цифр. Первый символ, который не удовлетворяет этой форме, прекращает сканирование. Если base от 2 до 36, то он используется как основание системы счисления. Если значение base равно 0, то начальные символы строки, указанной в nptr используются для идентификации базы. Если первый символ — "0", а второй символ не равен "x" или "X", строка интерпретируется как восьмеричное целое число. Если первый символ — «0», а второй символ не равен «x» или «x», строка интерпретируется как шестнадцатеричное целое число. Если первый символ от «1» до «9», строка интерпретируется как десятичное целое число. Буквы от «а» до «z» присваиваются значения от 10 до 35; разрешены только буквы с присвоенными значениями меньше base. Первый символ вне диапазона базы останавливает сканирование. Например, если base — 0 и первый сканированный символ — "0", то предполагается восьмеричное целое число и символ "8" или "9" остановит сканирование.
Требования
Подпрограмма |
Обязательный заголовок |
---|---|
_strtoui64 |
<stdlib.h> |
_wcstoui64 |
<stdlib.h> или <wchar.h> |
_strtoui64_l |
<stdlib.h> |
_wcstoui64_l |
<stdlib.h> или <wchar.h> |
Дополнительные сведения о совместимости см. в разделе Совместимость во введении.
Пример
// crt_strtoui64.c
#include <stdio.h>
unsigned __int64 atoui64(const char *szUnsignedInt) {
return _strtoui64(szUnsignedInt, NULL, 10);
}
int main() {
unsigned __int64 u = atoui64("18446744073709551615");
printf( "u = %I64u\n", u );
}
См. также
Ссылки
Функции преобразования строк в числовое значение
strtod, _strtod_l, wcstod, _wcstod_l