atoll
, , _atoll_l
_wtoll
_wtoll_l
Преобразует строку в целое число long long
.
Синтаксис
long long atoll(
const char *str
);
long long _wtoll(
const wchar_t *str
);
long long _atoll_l(
const char *str,
_locale_t locale
);
long long _wtoll_l(
const wchar_t *str,
_locale_t locale
);
Параметры
str
Строка для преобразования.
locale
Используемый языковой стандарт.
Возвращаемое значение
Каждая функция возвращает значение long long
, которое создается за счет интерпретации входных символов как числа. Возвращаемое значение atoll
равно 0, если входные данные не могут быть преобразованы в значение этого типа.
При переполнении большими положительными целыми значениями функция atoll
возвращает LLONG_MAX
, при переполнении большими отрицательными целыми значениями — LLONG_MIN
.
Во всех случаях, когда диапазон не соблюдается, errno
принимает значение ERANGE
. Если переданный параметр имеет значение NULL
, вызывается обработчик недопустимых параметров, как описано в разделе проверки параметров. Если продолжение выполнения разрешено, эти функции устанавливают для errno
значение EINVAL
и возвращают 0.
Замечания
Эти функции преобразуют символьную строку в целое значение long long
.
Входная строка представляет собой последовательность символов, которые могут обрабатываться как числовое значение указанного типа. Функция перестает считывать входную строку на первом символе, который не может распознаваться как часть числа. Этот символ может быть нуль-символом ("\0" или L"\0"), которым завершается строка.
Аргумент str
для atoll
принимает следующую форму:
[] [
whitespace
] [sign
] [digits
]
A whitespace
состоит из пробелов или символов табуляции, которые игнорируются; sign
либо плюс (+) или минус (-); и digits
являются одним или несколькими цифрами.
Функция _wtoll
идентична функции atoll
за тем исключением, что принимает в качестве параметра строку расширенных символов.
Версии этих функций с суффиксом _l
идентичны версиям без суффикса, за исключением того, что они используют переданный параметр языкового стандарта вместо языкового стандарта текущего потока. Дополнительные сведения см. в разделе Locale.
По умолчанию глобальное состояние этой функции ограничивается приложением. Чтобы изменить это поведение, см . статью "Глобальное состояние" в CRT.
Сопоставления подпрограмм универсального текста
Подпрограмма Tchar.h | _UNICODE и _MBCS не определен |
_MBCS Определенные |
_UNICODE Определенные |
---|---|---|---|
_tstoll |
atoll |
atoll |
_wtoll |
_tstoll_l |
_atoll_l |
_atoll_l |
_wtoll_l |
_ttoll |
_atoll |
_atoll |
_wtoll |
Требования
Подпрограммы | Обязательный заголовок |
---|---|
atoll , _atoll_l |
<stdlib.h> |
_wtoll , _wtoll_l |
<stdlib.h> или <wchar.h> |
Пример
Эта программа показывает, как преобразовывать числа, хранящиеся в виде строк, в числовые значения с помощью функции atoll
.
// crt_atoll.c
// Build with: cl /W4 /Tc crt_atoll.c
// This program shows how to use the atoll
// functions to convert numbers stored as
// strings to numeric values.
#include <stdlib.h>
#include <stdio.h>
#include <errno.h>
int main(void)
{
char *str = NULL;
long long value = 0;
// An example of the atoll function
// with leading and trailing white spaces.
str = " -27182818284 ";
value = atoll(str);
printf("Function: atoll(\"%s\") = %lld\n", str, value);
// Another example of the atoll function
// with an arbitrary decimal point.
str = "314127.64";
value = atoll(str);
printf("Function: atoll(\"%s\") = %lld\n", str, value);
// Another example of the atoll function
// with an overflow condition occurring.
str = "3336402735171707160320";
value = atoll(str);
printf("Function: atoll(\"%s\") = %lld\n", str, value);
if (errno == ERANGE)
{
printf("Overflow condition occurred.\n");
}
}
Function: atoll(" -27182818284 ") = -27182818284
Function: atoll("314127.64") = 314127
Function: atoll("3336402735171707160320") = 9223372036854775807
Overflow condition occurred.
См. также
Преобразование данных
Поддержка математических и плавающих точек
Локаль
_ecvt
_fcvt
_gcvt
setlocale
, _wsetlocale
_atodbl
, , _atodbl_l
_atoldbl_l
_atoldbl
_atoflt
,_atoflt_l