您的位置:首页 > 其它

itoa与atoi的实现

2009-11-03 11:15 381 查看
/*itoa把整型转换成字符串 */
itoa(int i, char* string)
{
int power, j ;

j=i;

for(power=1; j >= 10; j/=10)

power*=10;

for(; power > 0 ; power/=10){

*string++ = '0'+i/power;
i%=power;
}
*string = '\0';

}
刚碰到的时候对 *string++ = '0' +i/power 这一句很是纳闷...
不过现在明白它是为什么了.
当一个整型的数给字符赋值时,就相当于把它的ASCII值给它了.所以用%c打出来的话还会是字符来的.

顺便附上atoi的实现吧

int atoi(const char *s)
{
char *p = s;
char c;
int i = 0;
while(c=*p++)
{
if(c>='0' && c<='9')
{
i = i*10 + (c-'0');
}
else
return -1; //Invalid string
}
return i;
}

是不是再加上对十 , - 号的判断 更好点呢?
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: