Spec-Zone.ru › C

atoi, atol, atoll

Определён в заголовочном файле <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

См. также

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

© cppreference.com
Licensed under the Creative Commons Attribution-ShareAlike Unported License v3.0.
https://en.cppreference.com/c/string/byte/atoi

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API