atoi, atol, atoll
Определено в заголовке <stdlib.h> |
||
|---|---|---|
int atoi( const char *str ); |
||
long atol( const char *str ); |
||
long long atoll( const char *str ); |
(с C99) |
Интерпретирует целое значение в строке байтов, на которую указывает str. Неявное основание всегда равно 10.
Пропускает все символы пробелов до первого символа, не являющегося пробелом, затем берёт как можно больше символов для формирования корректного представления целого числа и преобразует их в целое значение. Корректное целое значение состоит из следующих частей:
- (необязательно) знак «плюс» или «минус»
- цифровые символы
Если значение результата не может быть представлено, т.е. преобразованное значение выходит за пределы диапазона соответствующего типа возвращаемого значения, поведение не определено.
Параметры
| str | - | указатель на завершающуюся нулём строку байтов для интерпретации |
Значение результата
Целое значение, соответствующее содержимому str при успешном выполнении.
Если преобразование невозможно выполнить, возвращается 0.
Примечания
Название обозначает «ASCII в целое число».
Пример
#include <stdio.h>
#include <stdlib.h>
int main(void)
{
printf("%i\n", atoi(" -123junk"));
printf("%i\n", atoi(" +321dust"));
printf("%i\n", atoi("0"));
printf("%i\n", atoi("0042")); // treated as a decimal number with leading zeros
printf("%i\n", atoi("0x2A")); // only leading zero is converted discarding "x2A"
printf("%i\n", atoi("junk")); // no conversion can be performed
printf("%i\n", atoi("2147483648")); // UB: out of range of int
}Возможный вывод:
-123 321 0 42 0 0 -2147483648
Ссылки
- Стандарт C17 (ISO/IEC 9899:2018):
- 7.22.1.2 Функции atoi, atol и atoll (стр. 249)
- Стандарт C11 (ISO/IEC 9899:2011):
- 7.22.1.2 Функции atoi, atol и atoll (стр. 341)
- Стандарт C99 (ISO/IEC 9899:1999):
- 7.20.1.2 Функции atoi, atol и atoll (стр. 307)
- Стандарт C89/C90 (ISO/IEC 9899:1990):
- 4.10.1.2 Функция atoi
- 4.10.1.3 Функция atol
См. также
|
(C99) |
преобразует строку байтов в целое значение (функция) |
|
(C99) |
преобразует строку байтов в целое беззнаковое значение (функция) |
|
(C95)(C99) |
преобразует широкую строку в целое значение (функция) |
|
(C95)(C99) |
преобразует широкую строку в целое беззнаковое значение (функция) |
Документация C++ для atoi, atol, atoll |
|
© cppreference.com
Licensed under the Creative Commons Attribution-ShareAlike Unported License v3.0.
https://en.cppreference.com/w/c/string/byte/atoi