将整数转换成字符串

将整数转换成字符串

请编写一个 C 函数,该函数将给定的一个整数转换成字符串。

【本程序在Dev C++ 4.9.9.2 下编译通过】

下面的这个算法比较傻,垃圾的很,显示了一个C语言新手

所应有的水平。而且处理不完全,算法考虑不周到,代码

过于啰嗦,不够简洁,紧接着这个后面会有一个较为简洁、

完全的代码。

char * IntToStr(int Number)

{

char ch,*str,*t;

int i,Temp,Len=0;

str = (char *)malloc(11*sizeof(char));

t = str;

Temp =Number;

while(Temp != 0)

{

*t = (Temp%10)+0x30;

Temp = Temp/10;

Len++;

t++;

}

*t = '';

t = str;

for(i=0;i

{

ch = *t;

*t = *(t+Len-2*i-1);

*(t+Len-2*i-1) = ch;

t++;

}

return str;

}

main()

{

puts(IntToStr(123456));

}

下面是较为完全,较为简洁的代码。如发现什么错误,希望网友

能及时提出,俺将会给予改正。这里要谢谢 “阿郎” 网友的提醒。

char * IntToStr(int Number)

{

char ch,*str,*right,*left;

unsigned int Value;

str = (char *)malloc(12*sizeof(char));

left = right = str;

//如果是负数,则应加上负号,left、right向后走。

if(Number < 0)

{

Value = -Number;

*str = '-';

left++,right++;

}

else

Value = (unsigned)Number;

//把数字转换成字符串(倒置的)

while(Value)

{

*right = (Value%10)+0x30;

Value = Value/10;

right++;

}

*right-- = '';

//把倒置的字符串正放过来

while(right > left)

{

ch = *left;

*left++ = *right;

*right-- = ch;

}

return str;

}

main()

{

char * str;

str = IntToStr(1234567);

puts(str);

free(str);

str = IntToStr(-1234567);

puts(str);

free(str);

str = IntToStr(0x7FFFFFFF);

puts(str);

free(str);

str = IntToStr(-0x7FFFFFFF);

puts(str);

free(str);

system("pause");

}

http://blog.csdn.net/ammana_babi/archive/2006/07/18/936918.aspx

[@more@]
请使用浏览器的分享功能分享到微信等