求助关于《C程序设计语言》中第33面右下角的atoi函数
int atoi(char s[]){
int i,n;
n = 0;
for (i = 0 ; s[i] >= '0' && s[i] <= '9' ; ++i)
n = 10 * n + (s[i] - '0');
return n;
}
这个程序书上说是用来将一串数字转换为相应的数值,但是实在是想不明白 n = 10 * n + (s[i] - '0'); 这个输出出来都成什么了根本就不是'0'~'9'十个数的对应值,直接 s[i] - '0' 好像更符合要求吧
还有啊就是我为了验证一下就把这个程序改了一下
#include <stdio.h>
main()
{
int i,n;
char s[10];
for (i = 0 ; i <= 9 ; ++i)
s[i] = i;
for (i = 0 , n = 0 ; s[i] >= '0' && s[i] <= '9' ; ++i)
{
n = 10 * n + (s[i] - '0');
printf(“%d”,n)
}
}
结果运行了之后什么也不输出,直接右回到LINUX命令行了,不知到到底是为什么。