没有的itoa(),整数转换成对应的字符串

来源:互联网 发布:二级域名指定端口 编辑:程序博客网 时间:2024/05/19 13:25
/**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;} 

原创粉丝点击