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;
}
是不是再加上对十 , - 号的判断 更好点呢?
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;
}
是不是再加上对十 , - 号的判断 更好点呢?
相关文章推荐
- C语言itoa()函数和atoi()函数详解(整数转字符C实现)
- C/C++_atoi,itoa功能及其实现原理
- atoi 和 itoa实现
- c函数itoa和atoi实现
- atoi和itoa的实现
- atoi 和itoa的实现
- atoi和itoa的模拟实现
- C语言itoa()函数和atoi()函数详解(整数转字符C实现)
- C实现atoi()函数和itoa()函数
- C语言itoa()函数和atoi()函数详解(整数转字符C实现)
- 基础函数的实现(strcpy,strcat, strcmp, atoi, itoa)
- C语言itoa()函数和atoi()函数详解(整数转字符C实现)
- 【字符串】模拟实现atoi和itoa
- 源码:微软strcpy,strcat和strcmp的实现源代码 itoa atoi
- atoi() & itoa()函数的内部的实现
- 整理atoi itoa的实现
- 常用库函数编程实现用法总结(四)strdup strtok itoa atoi
- C语言实现atoi,itoa和atof
- 实现atoi和itoa
- atoi以及itoa实现