블로그 이미지
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 31    
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

티스토리 툴바