atoi 함수

int atoi(const char *nptr); 정수 표현의 문자열로 int 형식 값을 구함

입력 매개 변수 리스트

nptr 문자열

반환 값

문자열을 구성하는 정수를 int 형식으로 계산한 값

 

atoi 함수는 문자열의 앞 부분에 부호와 정수 문자들을 하나의 int 값으로 변환하여 반환합니다. 만약 변환할 수 없는 문자를 발견하면 현재 계산한 값을 반환합니다.

사용 예

////C언어 표준 라이브러리 함수 가이드
//int atoi(const char *nptr); 정수 표현의 문자열로 int 형식 값을 구함
//정수 표현의 문자열을 정수 값으로 변환하여 출력

#include <stdlib.h>
#include <stdio.h>

int main(void)
{
    printf("%d\n",atoi("12"));
    printf("%d\n",atoi("-12"));
    printf("%d\n",atoi("12abc"));
    printf("%d\n",atoi("-12abc"));
    printf("%d\n",atoi("abc12.34"));
    printf("%d\n",atoi("-abc12.34"));

    return 0;
}

출력

12
-12
12
-12
0
0

atoi 함수처럼 동작하는 myatoi 함수 만들기

/* https://ehpub.co.kr
   실습 내용:
   정수 표현의 문자열을 정수 값으로 변환하여 출력
   atoi처럼 동작하는 myaoti 작성                                                                                             */

#include 
#include 

int myatoi(const char* str)
{
    int sign = 1;
    if (*str == '-')
    {
        sign = -1;
        str++;
    }

    int value = 0;
    while (*str)
    {
        if ((*str >= '0') && (*str <= '9'))//isdigit(*str)
        {
            value = value * 10 + *str - '0';
            str++;
        }
        else
        {
            break;
        }        
    }
    return value * sign;
}
int main(void)
{
    printf("%d\n", atoi("12"));
    printf("%d\n", atoi("-12"));
    printf("%d\n", atoi("12abc"));
    printf("%d\n", atoi("-12abc"));
    printf("%d\n", atoi("abc12.34"));
    printf("%d\n", atoi("-abc12.34"));
    printf("=====================\n");
    printf("%d\n", myatoi("12"));
    printf("%d\n", myatoi("-12"));
    printf("%d\n", myatoi("12abc"));
    printf("%d\n", myatoi("-12abc"));
    printf("%d\n", myatoi("abc12.34"));
    printf("%d\n", myatoi("-abc12.34"));
    return 0;
}

실행 결과

12
-12
12
-12
0
0
=============================
12
-12
12
-12
0
0