Namespaces
Variants

atoi, atol, atoll

From cppreference.net
< c ‎ | string ‎ | byte
Определено в заголовочном файле <stdlib.h>
int atoi ( const char * str ) ;
(1)
long atol ( const char * str ) ;
(2)
long long atoll ( const char * str ) ;
(3) (начиная с 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

Ссылки

  • Стандарт C23 (ISO/IEC 9899:2024):
  • 7.22.1.2 Функции atoi, atol и atoll (стр: TBD)
  • Стандарт 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

Смотрите также

преобразует байтовую строку в целочисленное значение
(функция)
преобразует байтовую строку в беззнаковое целочисленное значение
(функция)
(C95) (C99)
преобразует широкую строку в целочисленное значение
(функция)
(C95) (C99)
преобразует широкую строку в беззнаковое целочисленное значение
(функция)
C++ documentation для atoi , atol , atoll