|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
这道题的要求是
基本要求:
A. 将用户输入的字符串中代表数字的字符转换为整型数值
B. 打印转换结果
C. 只打印第一组数字
提示:你可以使用 break 语句在适当的时候跳出循环。
答案上的代码是:
#include <stdio.h>
int main()
{
int 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;
}
说一下我不理解的,首先是ch输入了一个值,然后在下面的if条件语句中
判断的条件是ch >= '0' && ch <= '9',我不知道它判断的到底是ch大于等于0同时小于等于9,还是ch大于等于字符’0‘和字符’9’的ASCLL值,希望大佬们告诉我
其次是不明白num=10*num+(ch-‘0’)的意思,为什么它能实现转变为整型数值,同时,其中的ch-'0"到底减的是0这个阿拉伯数字,还是字符‘0’对应的ASCLL值。
lipu 发表于 2021-3-27 09:12
为什么不能写成ch>=0&&ch
定义是整形,到你输入的是字符0~9啊
值是其ASCII码
|
|