首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

atoi中的有关问题

2012-03-18 
atoi中的问题int atoi(const char* s){int n 0while (!(*s 0 && *s 9)){s++}while (*s

atoi中的问题
int atoi(const char* s)
{
int n = 0;

while (!(*s >= '0' && *s <= '9'))
{
s++;
}
while (*s >= '0' && *s <= '9')
{
n *= 10;
n += *s - '0';
//n = n * 10 + *s - '0';
s++;
}
return n;
}

n += *s - '0';请问这句是什么意思啊?如果输入的s是“123”,那么返回结果是"123"
如果n += *s;结果就不对了,我想问的是减'0'是什么意思啊?
请高手帮忙指导,谢谢。

[解决办法]

C/C++ code
n的类型为int,而s的类型是char*,*s即为字符,所以需要减去'0'(48)让字符变成对应的int类型 

热点排行