본문 바로가기
2_ 바삭바삭 프로그래밍/C and C++

C - 문자를 숫자로(atoi), 숫자를 문자로(itoa)

by 준환이형님_ 2011. 10. 5.

아~ 맨날 아토인가 이토안가 까먹고..

아토이의 'a'가 '알파벳'의 이니셜이네요. 이것도 포스팅해야지..



우선 헤더는 <stdlib.h>를 필요로 합니다.


문자를 숫자로 바꿔주는 함수, 아토이 atoi (Alphabet TO Integer)는 쓰기 쉽죠

 int    atoi(const char *_Str);
 

ex)
char * a ="12345";
printf("%d \n",atoi(a));


문자열로 인식되기 위해서는 정수를 문자열로 전환을 해야합니다.
 
이 때, 사용하는 함수가 itoa ( Integer TO Alphabet) 함수입니다.
 
헤더를 지정 한 뒤 다음과 같이 사용하면 되지요.
 
 char *itoa ( int value , char *str , int radix );
 
value 는 변환 시키고 싶은 숫자입니다.
str 은 전환 될 문자열입니다. 
radix 는 진수를 결정하게 되는데
         2를 넣으면 2진수 형태로 출력을하고
        10을 넣으면 10진수 형태로 출력합니다.
 
이 함수는 str의 포인터를 리턴합니다.
 
한가지 주의 할 점은 버퍼량의 초과를 방지하기 위해 버퍼의 크기를 충분히 크게 해줘야 합니다.
 
#include <stdlib.h>
#include <stdio.h>
int main( void )
{
 char buffer[65] = {0};
    int num = 100;
  
     itoa( num, buffer, 10 );
     printf( "base %d: %s \n", num, buffer);
  return 0;
}
  
다음은 출력 결과입니다.
 
base 100: 100        (10진수로 했을 때)
base 100:  1100100 (2진수로 했은 때)