Функция atol () в C ++ интерпретирует содержимое строки и возвращает соответствующее ей целочисленное значение.
atol () Прототип
длинный int atol (const char * str);
Это определено в заголовочном файле.
Функция atol () принимает строку как параметр, интерпретирует ее содержимое как целое число и возвращает соответствующее значение в формате long int
.
atol () Параметры
- str - строка, имеющая представление целого числа.
atol () Возвращаемое значение
Функция atol () возвращает:
long int
значение (которое преобразуется из строки).- 0, если действительное преобразование не может быть выполнено.
Если преобразованное значение выходит за пределы диапазона, это вызывает неопределенное поведение.
Пример 1: Как работает функция atol ()?
#include #include using namespace std; int main() ( char s() = "-114"; double number; cout << "Number in String = " << s << endl; number = atol(s); cout << "Number in Long Int = " << number; return 0; )
Когда вы запустите программу, вывод будет:
Число в строке = -114 Число в длинном интервале = -114
Допустимое целочисленное значение для функции atol () состоит из необязательного знака + или -, за которым следуют числовые цифры (0-9) . Функция atol () не поддерживает шестнадцатеричные числа, бесконечность и NaN
выражения, такие как функция atof ().
В общем, действительный целочисленный аргумент для функции atol () имеет следующий вид:
(пробел) (- | +) (цифры)
Функция atol () игнорирует все начальные пробельные символы до тех пор, пока не будет найден основной непробельный символ.
Затем, начиная с этого символа, требуется как можно больше символов, которые образуют допустимое целочисленное представление и преобразуют их в значение типа long int. Все, что осталось от строки после последнего допустимого символа, игнорируется и не влияет на результат.
Пример 2: функция atol () с пробелами и завершающими символами
#include #include using namespace std; int main() ( cout << "Number in String = " << " 13" << endl; cout << "Number in Long Int = " << atol(" 13") << endl << endl; cout << "Number in String = " << " 25 " << endl; cout << "Number in Long Int = " << atol(" 25 ") << endl << endl; cout << "Number in String = " << "41.90abcd" << endl; cout << "Number in Long Int = " << atol("41.90abcd") << endl << endl; // Returns 0 because of invalid conversion cout << "abcd14" << " to Long Int = " << atol("abcd14") << endl; return 0; )
Когда вы запустите программу, вывод будет:
Число в строке = 13 Число в длинном интервале = 13 Число в строке = 25 Число в длинном интервале = 25 Число в строке = 41.90abcd Число в длинном интервале = 41 от abcd14 до длинного числа Int = 0