int位数的获取及int类型转char *
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;
}
/////////////////////////////////////////////////////////////////////////////////////////////////////