//自己找到了一个itoa的实现
void itoa(unsigned long val,char *buf,unsigned radix)
{
char *p;/*pointer to traverse string*/
char *firstdig;/*pointer to first digit*/
char temp;/*temp char*/
unsigned digval;/*value of digit*/
p = buf;
firstdig = p;/*save pointer to first digit*/
do{
digval =(unsigned)(val % radix);
val /= radix;/*get next digit*/
/*convert to ascii and store */
if(digval > 9)
*p++ = (char)(digval - 10 + 'a ');/*a letter*/
else
*p++ = (char)(digval + '0 ');/*a digit*/
}while(val > 0);
/*We now have the digit of the number in the buffer,but in reverse
order.Thus we reverse them now.*/
*p-- = '\0 ';/*terminate string;p points to last digit*/
do{
temp = *p;
*p = *firstdig;
*firstdig = temp;/*swap *p and *firstdig*/
--p;
++firstdig;/*advance to next two digits*/
}while(firstdig < p);/*repeat until halfway*/
}
一个itoa的实现
最新推荐文章于 2022-08-09 16:06:37 发布