atoi() — 문자 스트링을 정수로 변환

형식

#include <stdlib.h>
int atoi(const char *string);

언어 레벨

ANSI

스레드세이프

로케일 감지

이 함수의 작동은 현재 로케일의 LC_CTYPE 범주에 영향을 받을 수 있습니다. 자세한 정보는 CCSID 및 로케일 이해의 내용을 참조하십시오.

설명

atoi() 함수는 문자 스트링을 정수값으로 변환합니다. 입력 string은 지정된 리턴 유형의 숫자 값으로 해석될 수 있는 일련의 문자입니다. 함수는 수의 일부로 인지할 수 없는 첫 번째 문자에서 입력 스트링 읽기를 중지합니다. 이 문자는 스트링을 종료하는 널 문자일 수 있습니다.

atoi() 함수는 소수점이나 지수를 인식하지 못합니다. 이 함수에 대한 string 인수의 양식은 다음과 같습니다.

구문 도표 읽기시각적 구문 도표 생략
>>-+------------+--+----+--digits------------------------------><
   '-whitespace-'  +-+--+           
                   '- --'           

여기서 whitespace는 공백과 탭과 같이 isspace() 함수가 true인 동일한 문자로 구성됩니다. atoi() 함수는 선행 공백 문자를 무시합니다. 값 digits는 하나 이상의 10진 숫자를 나타냅니다.

리턴값

atoi() 함수는 입력 문자를 숫자로 해석하여 생성되는 int 값을 리턴합니다. 함수가 입력을 해당 유형의 값으로 변환할 수 없는 경우 리턴값은 0입니다. 리턴값은 오버플로의 경우 정의되지 않습니다.

이 예는 스트링으로 저장된 수를 숫자 값으로 변환하는 방법을 표시합니다.
#include <stdlib.h>
#include <stdio.h>
 
int main(void)
{
    int i;
    char *s;
 
    s = " -9885";
    i = atoi(s);     /* i = -9885 */
 
    printf("i = %d\n",i);
}
 
/*******************  Output should be similar to:  ***************
 
i = -9885
*/