itoa的实现

来源:互联网 发布:视频片头软件 编辑:程序博客网 时间:2024/05/16 13:58
// num:待转换的整型变量   str:指向存放结果    radix:基数 
char* itoa1(int num, char *str, int radix)
{
const char table[] = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"; 
char *ptr = str;


if (num == 0)   
{   //数值为0时  
*ptr++ = '0';  
*ptr = '\0';  
return str;  



bool neg = false;
if (num < 0)
{
//数值小于0时,添加负号,并将指针后移 
neg = true;  
num *= -1;  
*ptr++ = '-'; 
}


while (num)   
{   
*ptr++ = table[num % radix];   
num /= radix;   

*ptr = '\0';
//反转字符串  
char *beg = (neg ? str +1 : str);
ptr--;  
while (beg < ptr)  
{   
int temp = *beg;   
*beg  = *ptr;   
*ptr  = temp;  
beg++;  
ptr--;  
}   
return str;   
}
0 0
原创粉丝点击