atol, _atol_l, _wtol, _wtol_l
Преобразует строку в длинное целое число.
long atol(
const char *str
);
long _atol_l(
const char *str,
_locale_t locale
);
long _wtol(
const wchar_t *str
);
long _wtol_l(
const wchar_t *str,
_locale_t locale
);
Параметры
str
Строка для преобразования.locale
Языковой стандарт, который необходимо использовать.
Возвращаемое значение
Каждая функция возвращает значение long, которое создается за счет интерпретации входных символов в виде числа. Возвращаемое значение atol равно 0L, если входные данные невозможно преобразовать в значение этого типа.
В случае переполнения большими положительными целыми значениями atol возвращает LONG_MAX; в случае переполнения большими отрицательными целыми значениями — LONG_MIN. Во всех случаях вне допустимого диапазона, параметр errno имеет значение ERANGE. Если переданный параметр — NULL, вызывается обработчик недопустимого параметра, как описано в разделе Проверка параметров. Если продолжение выполнения разрешено, эти функции устанавливают для errno значение EINVAL и возвращают 0.
Заметки
Эти функции преобразуют символьную строку в длинное целочисленное значение (atol).
Входная строка — это последовательность символов, которая может быть интерпретирована как числовое значение указанного типа. Функция прекращает чтение входной строки на первом знаке, который она не может распознать как часть числа. Этот символ может быть символом NULL ('\0' or L'\0'), которым завершается строка.
Аргумент str для atol имеет следующую форму:
[whitespace] [sign] [digits]]
whitespace состоит из пробелов и знаков табуляции, которые игнорируются; sign — плюс (+) или минус (–); digits — одна или несколько десятичных цифр.
_wtol идентично atol, за исключением того, что он принимает строку расширенных символов в качестве параметра.
Версии этих функций с суффиксом _l идентичны, за исключением того, что они используют переданный параметр языкового стандарта вместо текущего языкового стандарта. Для получения дополнительной информации см. Языковой стандарт.
Универсальное текстовое сопоставление функций
Подпрограмма TCHAR.H |
_UNICODE & _MBCS не определены |
_MBCS определено |
_UNICODE определено |
---|---|---|---|
_tstol |
atol |
atol |
_wtol |
_ttol |
atol |
atol |
_wtol |
Требования
Программы |
Обязательный заголовок |
---|---|
atol |
<stdlib.h> |
_atol_l, _wtol, _wtol_l |
<stdlib.h> и <wchar.h> |
Пример
Эта программа показывает, как числа, хранящиеся в виде строки, могут преобразованы в числовые значения с помощью atol.
// crt_atol.c
// This program shows how numbers stored as
// strings can be converted to numeric values
// using the atol functions.
#include <stdlib.h>
#include <stdio.h>
#include <errno.h>
int main( void )
{
char *str = NULL;
long value = 0;
// An example of the atol function
// with leading and trailing white spaces.
str = " -2309 ";
value = atol( str );
printf( "Function: atol( \"%s\" ) = %d\n", str, value );
// Another example of the atol function
// with an arbitrary decimal point.
str = "314127.64";
value = atol( str );
printf( "Function: atol( \"%s\" ) = %d\n", str, value );
// Another example of the atol function
// with an overflow condition occurring.
str = "3336402735171707160320";
value = atol( str );
printf( "Function: atol( \"%s\" ) = %d\n", str, value );
if (errno == ERANGE)
{
printf("Overflow condition occurred.\n");
}
}