标C函数itoa实现的源代码
char *itoa(int num, char *str, int radix)
{
char string[] = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ";
char* ptr = str;
int denom = 0; //余数
int count = -1;
int i;
int j;
while (num >= radix)
{
denom = num % radix;
num /= radix;
*ptr++ = string[denom];
count++;
}
if (num)
{
*ptr++ = string[num];
count++;
}
*ptr = '\0';
j = count;
for (i = 0; i < (count + 1) / 2; i++)
{
int temp = str[i];
str[i] = str[j];
str[j--] = temp;
}
return str;
}
自己实现了itoa的功能,但觉得太复杂了,请各位高手帮忙优化一下或者提供更好的进制转换方法。谢谢!