S1E13中的动动手2练习题 新人求助
#include <stdio.h>int main()
{
char ch;
int num = 0;
printf("请输入待转换的字符串:");
do
{
ch = getchar();
if (ch >= '0' && ch <= '9')
{
num = 10 * num + (ch - '0');
}
else
{
if (num)
{
break; // 如果已有数字,则退出循环
}
}
}
while (ch != '\n');
printf("结果是:%d\n", num);
return 0;
}
为什么程序中的num = num * 10 + (ch - ‘0’)这句为什么要这么写啊?num = 0,为什么不直接num = ch?
另外,为什么ch = getchar()能直接输入而不通过scanf? 因为ch是char,而num是int,用ch-‘0’得到的才是数字0~9
getchar是单独获取一个字符,当然也可以用scanf BngThea 发表于 2018-2-28 08:55
因为ch是char,而num是int,用ch-‘0’得到的才是数字0~9
getchar是单独获取一个字符,当然也可以用scanf
putchar()才是吧,getchar()不是只代表一个回车符号? Leven 发表于 2018-2-28 09:18
putchar()才是吧,getchar()不是只代表一个回车符号?
getchar是从输入流中获取一个字符
putchar是将一个字符打印出来 BngThea 发表于 2018-2-28 09:23
getchar是从输入流中获取一个字符
putchar是将一个字符打印出来
好的,我再去看看getchar()和putchar()的用法,谢谢{:10_291:}
页:
[1]