qq1242009750 发表于 2016-7-14 18:57:37

自己写了一个atoi,大家看看

#include <stdio.h>

int main()
{
      int ch;
      int num = 0;

      printf("请输入待转换的字符串:");

      while((ch = getchar()) != '\n')   // 输入不等于'\n'时循环
      {


            if(ch >= '0' && ch <= '9')      //判断输入的字符是否在 0 - 9之间
            {
                num = num * 10 + (ch - '0');    // 换算公式   为什么不把 num+(ch-‘0’)在乘10 接下
                                                // 因为加了后再乘10 就会多了一位 我们要的是乘了再加
            }
            else    // 如果字符不在0 - 9之间就退出循环
            {
                break;
            }
      }
         if (num == 0)      // 判断num中是否有计算后的值
         {
               printf("没有字符!! ");
         }

         printf("%d ", num);// 输出运算后的值

      return 0;
}

n0noper 发表于 2016-7-15 09:38:33

楼主,知识共享精神值得表扬!感谢你的支持!

但是 ···

windows平台下,微软貌似不是这么定义的~~~ {:5_93:}

下边是MSDN给的备注:






楼主,可以标注什么平台,或者稍微修改一下程序。

支持共享精神!甲油甲油!!

qq1242009750 发表于 2016-7-15 10:56:46

n0noper 发表于 2016-7-15 09:38
楼主,知识共享精神值得表扬!感谢你的支持!

但是 ···


可是我不明白 atoi函数要用do while 写啊用while 写不也行吗?

n0noper 发表于 2016-7-15 13:19:54

qq1242009750 发表于 2016-7-15 10:56
可是我不明白 atoi函数要用do while 写啊用while 写不也行吗?

楼主从哪里看到的必须用 do... while写?

再说了,问题不在用哪种循环啊,在 条件判断处理啊···
页: [1]
查看完整版本: 自己写了一个atoi,大家看看