가끔가다가 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 |