본문으로 바로가기

[C/C++] atoi()를 구현해보자!!

category 프로그래밍/C 함수 구현 2018. 8. 17. 12:56

atoi(const char * str) 
:char형의 문자열을 받아 int형으로 변환하는 역할을 합니다.

<사용에 필요한 헤더파일>
.c : stdlib.h
.cpp : cstdlib

c/c++ 개발을 조금만 해봤다면 많이 사용해봤을 atoi() 함수입니다.
개발에 앞서 개발된 함수들을 사용해보는것도 중요하지만 그걸 구현해봄으로써 원리를 이해하고 
코딩실력을 키울수 있다고 생각합니다. 덤으로 요즘 면접에서 종종 나온다고 하니ㅎㅎ


<구현>

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
#include <stdio.h>
#include <stdlib.h>
#include <assert.h>
 
int _atoi(char*);
 
int main()
{        
    char *= new char[10];
 
    printf("문자열:");    
    scanf_s("%s", a, 10);
    
    int b = _atoi(a);
    printf("정수형:%d\n", b);        
}
 
int _atoi(char* cdata)
{
    int sign = 1, data = 0;
 
    if (*cdata == '\n')
        return 0;
 
    if (*cdata == '-')
        sign = -1;
 
    while (*cdata)
    {
        if (*cdata >= '0' && *cdata <= '9')
        {
            data = data * 10 + *cdata - '0';
        }
        else
        {
            assert(0);
        }
        
        cdata++;
    }
 
    return data * sign;
 
}
 
cs


<결과>