_strtoi64
, , _wcstoi64
_strtoi64_l
_wcstoi64_l
Преобразуют строку в значение __int64
.
Синтаксис
__int64 _strtoi64(
const char *strSource,
char **endptr,
int base
);
__int64 _wcstoi64(
const wchar_t *strSource,
wchar_t **endptr,
int base
);
__int64 _strtoi64_l(
const char *strSource,
char **endptr,
int base,
_locale_t locale
);
__int64 _wcstoi64_l(
const wchar_t *strSource,
wchar_t **endptr,
int base,
_locale_t locale
);
Параметры
strSource
Строка, завершающаяся символом NULL, для преобразования.
endptr
Указатель на символ, который останавливает сканирование.
base
Используемое числовое основание.
locale
Используемый языковой стандарт.
Возвращаемое значение
_strtoi64
возвращает значение, представленное в строке strSource
, кроме случаев, когда представление вызвало бы переполнение; в этом случае возвращается значение _I64_MAX
или _I64_MIN
. Функция возвращает 0, если преобразование не может быть выполнено. _wcstoi64
возвращает значения аналогично _strtoi64
.
Значения _I64_MAX
и _I64_MIN
определяются в LIMITS.H.
Если strSource
имеет значение NULL
или base
имеет ненулевое значение и либо меньше 2, либо больше 36, то для errno
устанавливается значение EINVAL
.
Дополнительные сведения о кодах возврата см. в разделе errno
, _doserrno
_sys_errlist
и _sys_nerr
.
Замечания
Функция _strtoi64
преобразует strSource
в __int64
. Обе функции перестают читать строку strSource
при первом символе, которую они не могут распознать как часть числа. Это может быть конечный символ NULL, или первый числовый символ больше или равно base
. _wcstoi64
— это версия _strtoi64
с расширенными символами; ее аргумент strSource
— строка расширенных символов. В остальном эти функции ведут себя одинаково.
По умолчанию глобальное состояние этой функции ограничивается приложением. Чтобы изменить его, ознакомьтесь с глобальным состоянием в CRT.
Сопоставления подпрограмм универсального текста
TCHAR.H рутина |
_UNICODE и _MBCS не определен |
_MBCS Определенные |
_UNICODE Определенные |
---|---|---|---|
_tcstoi64 |
_strtoi64 |
_strtoi64 |
_wcstoi64 |
_tcstoi64_l |
_strtoi64_l |
_strtoi64_l |
_wcstoi64_l |
Параметр категории языкового LC_NUMERIC
стандарта определяет распознавание символа радикса в strSource
; дополнительные сведения см. в разделе setlocale
. Функции без _l
суффикса используют текущий языковой стандарт и _wcstoi64_l
_strtoi64_l
идентичны соответствующей функции без _l
суффикса, за исключением того, что они используют переданный языковой стандарт. Дополнительные сведения см. в разделе Locale.
Если endptr
это не NULL
так, указатель на символ, который остановил сканирование, хранится в расположении, на которое указывает endptr
. Если не удается выполнить преобразование (не найдены допустимые цифры или указано недопустимое основание), значение strSource
сохраняется в расположении, указанном endptr
.
Функция _strtoi64
ожидает, что 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" останавливает чтение.
Требования
Function | Обязательный заголовок |
---|---|
_strtoi64 , _strtoi64_l |
<stdlib.h> |
_wcstoi64 , _wcstoi64_l |
<stdlib.h> или <wchar.h> |
Дополнительные сведения о совместимости см. в разделе Совместимость.
См. также
Преобразование данных
Локаль
localeconv
setlocale
, _wsetlocale
Строки в числовые функции значений
strtod
, , _strtod_l
wcstod
_wcstod_l
strtoul
, , _strtoul_l
wcstoul
_wcstoul_l
atof
, , _atof_l
_wtof
_wtof_l