AdiosSpike 发表于 2021-10-9 10:57:25

S1E13作业求助

想问一下第十六行的 ch - '0' 的作用,大概我编写程序的时候没有那个 - '0', 出来的结果有误{:5_99:}

作业要求如下
C 语言中有个 atoi 函数(定义于 <stdlib.h> 头文件中),用于将字符串中的值解析为对应的整型数字。现在要求我们自己写一个程序,实现类似的功能。

基本要求:

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



wp231957 发表于 2021-10-9 11:27:55

百度一下ascii码,就可以了

AdiosSpike 发表于 2021-10-9 11:56:52

wp231957 发表于 2021-10-9 11:27
百度一下ascii码,就可以了

谢谢,看懂了
页: [1]
查看完整版本: S1E13作业求助