/*
*int num = 100;
*char str[25];
*myitoa(num, str, 10);
*printf("The number 'num' is %d and the string 'str' is %s. \n" ,num, str);
*/
char *myitoa(int num,char *str,int radix)
{
/* 索引表 */
char index[]="0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ";
unsigned unum;/* 中间变量 */
int i=0,j,k;/* 确定unum的值 */
if(radix==10&&num<0)/* 十进制负数 */
{
unum=(unsigned)-num;
str[i++]='-';
}
else unum=(unsigned)num;/* 其他情况 */
/* 逆序 */
do
{
str[i++]=index[unum%(unsigned)radix];
unum/=radix;
}while(unum);
str[i]='\0';
/* 转换 */
if(str[0]=='-')
k=1;/* 十进制负数 */
else
k=0;/* 将原来的“/2”改为“/2.0”,保证当num在16~255之间,radix等于16时,也能得到正确结果 */
char temp;
for(j=k;j<=(i-k-1)/2.0;j++)
{
temp=str[j];
str[j]=str[i-j-1];
str[i-j-1]=temp;
}
return str;
}
没有的itoa(),整数转换成对应的字符串
最新推荐文章于 2021-05-23 20:08:55 发布