C语言获取int位数:
int intlen(int num)
{
/*
参数:要获取长度的int类型数据
返回值:返回长度
*/
    int tmpn=num;
    int len=1;
    while(tmpn/=10)
        len++;
    return len;
}
C语言int类型转char *类型:
void intostr(char *dest,int num,int intlen)
{
/*
参数:
  dest---将int转换为char *后的存储位置
  num---要转换的int类型值
  intlen---int类型长度
*/
    int tmpn2=num;
    char tmpc[intlen+1];
    int i=intlen-1;
    tmpc[intlen]=‘\0‘;
    while(tmpn2)
    {
        tmpc[i]=48+(tmpn2%10);
        if(!(tmpn2/=10))
          tmpc[i-1]=40+tmpn2;
        i--;
    }
    memcpy(dest,tmpc,sizeof(tmpc));
}
例:
/////////////////////////////////////////////////////////////////////////////////////////////////////
#include <stdio.h>
#include <string.h>
int intlen(int num)
{
    int tmpn=num;
    int len=1;
    while(tmpn/=10)
      len++;
    return len;
}
void intostr(char *dest,int num,int intlen)
{
    int tmpn2=num;
    char tmpc[intlen+1];
    int i=intlen-1;
    tmpc[intlen]=‘\0‘;
    while(tmpn2)
    {
        tmpc[i]=48+(tmpn2%10);
        if(!(tmpn2/=10))
          tmpc[i-1]=40+tmpn2;
        i--;
    }
    memcpy(dest,tmpc,sizeof(tmpc));
}
int main()
{
    int num=1234567;
    char str[intlen(num)+1];
    intostr(str,num,intlen(num));
    printf("%s\n",str);
    return 0;
}
/////////////////////////////////////////////////////////////////////////////////////////////////////
原文:http://www.cnblogs.com/Mr-Wenyan/p/7359141.html