lou 发表于 2019-9-9 11:06:55

s1e13中的题目,查找待转换的字符

#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;
}

请问,这句话是什么意思? num = 10 * num + (ch - '0');

lou 发表于 2019-9-9 11:13:18

明白了

段软w 发表于 2019-11-14 14:27:47

lou 发表于 2019-9-9 11:13
明白了

啥意思

2164930278 发表于 2019-11-16 09:43:11

段软w 发表于 2019-11-14 14:27
啥意思

最后面的那句话是用来干什么的
我还是没看明白???

段软w 发表于 2019-11-16 18:05:38

2164930278 发表于 2019-11-16 09:43
最后面的那句话是用来干什么的
我还是没看明白???

我懂了

num = 10 * num + (ch - '0');

这个是因为ch是字符串类型 所以它减的'0'是减去它对应的ASCII码值
这样根据循环 得到的就只有数字 num*10是进一位的意思 后面+的是要打出来的数字的后一位
页: [1]
查看完整版本: s1e13中的题目,查找待转换的字符