homeskating 发表于 2022-10-24 15:58:19

小甲鱼字符串处理函数动动手第0题i++的作用是啥?

#include <stdio.h>

#define MAX 1024

int main() {
        char str1;
        char str2;
        int i = 0;
        unsigned int n;

        printf("请输入第一个字符串:");
        while ((str1 = getchar()) != '\n')
                ;

        printf("请输入第二个字符串:");
        i = 0;
        while ((str2 = getchar()) != '\n')
                ;

        printf("请输入比较的字符数:");
        scanf("%u", &n);

        for (i = 0; i < n; i++) {
                if (str1 - str2<0) {
                        printf("i++前%d\n",i);
//                        i++;i++作用是啥
                        printf("i++后%d\n",i);
                        break;
                }
        }
        printf("比较的结果是:%d\n", str1 - str2);
        return 0;
}
我注释掉i++貌似结果并没有什么改变

jackz007 发表于 2022-10-24 16:27:15

本帖最后由 jackz007 于 2022-10-24 16:31 编辑

      int i = 0;
. . . . . .
      printf("请输入第一个字符串:");
      while ((str1 = getchar()) != '\n')
. . . . . .
      printf("请输入第二个字符串:");
      i = 0;
      while ((str2 = getchar()) != '\n')
       i 是数组索引,i ++ 就是 i = i + 1,在存入一个字符以后,索引值增加 1,指向数组的下一个元素存储位置,以便下一个字符可以存入其中,同时,输入结束的时候,i 值就是一共输入的字符个数。

两手空空儿 发表于 2022-10-24 16:50:11

在这里的i++确实没什么用,估计是为了保持for(i = 0 ; i < n ; i++)语句的风格吧,这种语句跑完的时候,i一般都是多加了1次的,
按这个思维定势,后面用的时候就 -1 用, printf("比较的结果是:%d\n", str1 - str2);
哪天把for里的东西改了,后面也不会出问题
页: [1]
查看完整版本: 小甲鱼字符串处理函数动动手第0题i++的作用是啥?