char *itoa(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时,也能得到正确结果 */ for(j=k;j<(i-1)/2.0+k;j++) { num=str[j]; str[j]=str[i-j-1+k]; str[i-j-1+k]=num; } return str; }
itoa函数(linux中没有这个函数,因此要自己实现)
最新推荐文章于 2022-04-01 13:12:01 发布