小甲鱼C语言作业S1E19中实现strcmp函数疑问
https://fishc.com.cn/forum.php?mod=viewthread&tid=70626&extra=page%3D1%26filter%3Dtypeid%26typeid%3D570上面链接 动动手第0题 中
for (i = 0; i < n; i++)
{
if (str1 - str2)
{
i++;
break;
}
}
printf("比较的结果是:%d\n", str1 - str2);
请问,i++的意义是啥?后面又输出的i-1{:5_94:}
我感觉完全可以去掉,但是不知道为什么要这样写 for(i = 0 ; str1 && str2 && str1 == str2 ; i ++) ;
printf("比较的结果是:%d\n" , str1 - str2) ; #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)
{
i++;//i++向后移一位,应该是为了保障\0结束符
break;
}
}
printf("比较的结果是:%d\n", str1 - str2);//i-1忽略\0字符串结束符
return 0;
}
第2个i++是为了和第一个for循环中的i++匹配,保证不管最后结果是不是0,printf中的i-1都指向正确的元素。
页:
[1]