블로그 이미지
Terapi

calendar

        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  
2009.09.02 22:01 Softwere/sample code
리눅스에서 코딩하다가 itoa를 쓸일이 있었는데 리눅스 내장함수에는 atoi는 지원하지만 itoa는 지원하고 있지를 않다. 왜~~~~ 라고 한다면 알아서 코딩하라고 하겠지... 밑에 형님들이 ANSI C로 코딩해뒀다 책에 있는 내용을 첨부한다.

/**
 * Ansi C "itoa" based on Kernighan & Ritchie's "Ansi C":
 */


void strreverse(char* begin, char* end) 
{
        char aux;
        while(end>begin)
               aux=*end, *end--=*begin, *begin++=aux;
}

 

void itoa(int value, char* str, int base) 
{
        static char num[] = "0123456789abcdefghijklmnopqrstuvwxyz";
        char* wstr=str;
        int sign;
        if (base<2 || base>35)
        { 
               *wstr='\0'; 
               return; 
        }

        if ((sign=value) < 0) 
               value = -value;
        do 
               *wstr++ = num[value%base]; 
        while(value/=base);

        if(sign<0) 
               *wstr++='-';
        *wstr='\0';

        strreverse(str,wstr-1);
}
신고
크리에이티브 커먼즈 라이선스
Creative Commons License
posted by Terapi

티스토리 툴바