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 - 해석할 null로 종료되는 바이트 문자열을 가리키는 포인터

반환값

성공 시 str 내용에 해당하는 정수 값.

변환을 수행할 수 없는 경우, 0 이 반환됩니다.

참고 사항

이름은 "ASCII to integer"를 의미합니다.

예제

#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")); // 선행 0이 있는 10진수로 처리됨
    printf("%i\n", atoi("0x2A")); // 선행 0만 변환되고 "x2A"는 버려짐
    printf("%i\n", atoi("junk")); // 변환을 수행할 수 없음
    printf("%i\n", atoi("2147483648")); // UB: int 범위를 벗어남
}

가능한 출력:

-123
321
0
42
0
0
-2147483648

참조문헌

  • C23 표준 (ISO/IEC 9899:2024):
  • 7.22.1.2 atoi, atol, atoll 함수 (p: TBD)
  • C17 표준 (ISO/IEC 9899:2018):
  • 7.22.1.2 atoi, atol, atoll 함수 (p: 249)
  • C11 표준 (ISO/IEC 9899:2011):
  • 7.22.1.2 atoi, atol, atoll 함수 (p: 341)
  • C99 표준 (ISO/IEC 9899:1999):
  • 7.20.1.2 atoi, atol, atoll 함수 (p: 307)
  • C89/C90 표준 (ISO/IEC 9899:1990):
  • 4.10.1.2 The atoi function
  • 4.10.1.3 The atol function

참고 항목

바이트 문자열을 정수 값으로 변환
(함수)
바이트 문자열을 부호 없는 정수 값으로 변환
(함수)
(C95) (C99)
와이드 문자열을 정수 값으로 변환
(함수)
(C95) (C99)
와이드 문자열을 부호 없는 정수 값으로 변환
(함수)
C++ documentation for atoi , atol , atoll