가끔가다가 integer, long, float 타입을 char 형식으로 바꿔야할

일이 생겼습니다.

 

예를 들면 itoa 함수를 찾아보니 따로 존재하지 않았습니다.

물론 구글에 검색하면 비슷한 기능을 수행하는 함수의 예를 확인하실 수 있습니다.

 

본 페이지의 하단에 대략적인 itoa 함수를 나타냈습니다.

하지만 http://www.cfaq.com 웹페이지에서 제안하는 방식은.

snprintf(sprintf) 함수를 이용하는 것 입니다.

 

예를 들면 아래처럼 사용할 수 있다.

 

char test_char[16] = {0,};
int test_int = 10000;

snprintf( test_char, sizeof(test_char), "%s", test_int);

 

 

 

 

 

#define INT_DIGITS 19		/* enough for 64 bit integer */

char *itoa(i)
     int i;
{
  /* Room for INT_DIGITS digits, - and '\0' */
  static char buf[INT_DIGITS + 2];
  char *p = buf + INT_DIGITS + 1;	/* points to terminating '\0' */
  if (i >= 0) {
    do {
      *--p = '0' + (i % 10);
      i /= 10;
    } while (i != 0);
    return p;
  }
  else {			/* i < 0 */
    do {
      *--p = '0' - (i % 10);
      i /= 10;
    } while (i != 0);
    *--p = '-';
  }
  return p;
}

--------

반응형

'Language > C' 카테고리의 다른 글

바이너리 파일전송 C언어 예제 -클라이언트-  (467) 2012.10.18
바이너리 파일전송 C언어 예제 -서버-  (158) 2012.10.18
strspn 함수 예제  (3488) 2012.09.20
strcmp 함수 예제  (3161) 2012.08.17
strchr 함수 예제  (442) 2012.08.14

+ Recent posts