CHAR *Int2Str(int n, CHAR *p)
{
CHAR szBuf[16] = {0};
int i; for(i=0; n; i++)
{
szBuf[14-i] = '0' + n%10;
n/= 10;
} strcpy(p, szBuf+15-i);
return p;
}
这个没符号的

解决方案 »

  1.   

    给个微软高手写的
    char *strFromUns(unsigned u)  
    {   
    static char strDigits = “?????”; 
    /* 5个字符+’\0’ */  
     char *pch;
     /* u 超出范围了吗?使用UlongToStr … */ 
    ASSERT(u<=65535); 
    /* 将每位数字自后向前存储在strDigits中 */ 
    pch = &strDigits[5]; 
    ASSERT(*pch == ‘\0’); 
    do  
     *--pch = u%10 + ‘0’; 
    while((u/=10)>0); 
    return(pch); 
    }
      

  2.   

    szBuf[14-i] = '0' + n%10;
    为什么要+‘0’呢。不明白。感谢上面的大哥给的解答。我已经验证过了。很好。但是我有一点小疑问 就是为什么要+‘0’。麻烦给解答一下 。
      

  3.   

    字符,对应的是一个char类型的整形量,范围-128~127。
    对于字符'0',其ascII码是48。
    依次的,'1'的ascII码是49,即48+1,也就是'0'+1
    以此类推....
    注意了:c语言中的字符串是字符数组,就是一个char的序列。每个字符既可以看做一个字符,也可以从其本质上认为是一个整数。
      

  4.   

    孙鑫视频上就有
    int ASCII
    0   48
    1   48+1
    .
    .
    .......
      

  5.   

    int a=1234;
    char ch[5];
    int b=a/1000;
    ch[0]=b;
    b=a/100;
    ch[1]=b/10;
    b=a%100;
    ch[2]=b/10;
    ch[3]=a%10;
    /////上面这些是把每个数位提取出来   你可以写个递归函数 
     ch[4]='\0';
     CString str=ch;
     这样就行了   思想就是你用/ 或者求余运算 把 每个数位提取出来 再在最后加上'\0'就成字符串了 
      

  6.   

    char *MyItoA(unsigned int num, char* pDst)   
    {   
        if(pDst == NULL)
            return NULL;    int nLen = strlen(pDst);    memset(pDst, 0, nLen);    char* p = pDst + nLen; 
     
        do
        {   
            *--p = num%10 + '0';  
        }
        while( (num /= 10)>0 ); 
     
        return pDst;  
    }