15917579239 发表于 2017-6-8 16:26:24

s1e22课后作业

#include <stdio.h>

#define MAX 1024

int main()
{
      char str;
      char *target = str;
      char ch;
      int length = 0;

      printf("请输入一个字符串:");
      fgets(str, MAX, stdin);

      while (1)
      {
                ch = *target++;
                if (ch == '\0')
                {
                        break;
                }
                if ((int)ch < 0)
                {
                        target += 2;
                }
                length++;
      }

      printf("您总共输入了 %d 个字符!\n", length - 1);

      return 0;
}循环里面的条件为什么是1,1不是无限循环吗?
还有 ch = *target++; 是什么意思为什么要++

落叶飞空 发表于 2017-6-8 16:38:27

是无限循环的,但是 if (ch == '\0')设置了跳出条件,'\0'是字符串结束的标志,也就是说一直读取到字符串的结尾跳出这个无限循环。

15917579239 发表于 2017-6-12 22:44:51

落叶飞空 发表于 2017-6-8 16:38
是无限循环的,但是 if (ch == '\0')设置了跳出条件,'\0'是字符串结束的标志,也就是说一直读取到字符串的 ...

还有 ch = *target++; 是什么意思为什么要++

落叶飞空 发表于 2017-6-13 01:25:30

每次语句执行后指向下一个字符。
页: [1]
查看完整版本: s1e22课后作业