标?的看不懂,麻烦大哥们解释一下,谢谢
#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)//?
{
i++;
break;
}
}
printf("比较的结果是:%d\n", str1 - str2);
return 0;
} 第一处和第二处都是一个意思,就是判断字符数组当前位置的字符是否为换行符,\\n是转义字符相当于键盘上的回车键,就是当接收到的字符不是回车时才执行while语句里面的内容,第三处属实没看懂 (1)while ((str1 = getchar()) != '\n');
当你输入的字符不是'\n'的时候,就一直执行(str1 = getchar()) != '\n',这样你就可以一直输入字符到str1[]中。
当你输入字符是'\n',就会结束循环。--------C语言中'\n' 是回车换行,你按回车键就相当于输入了'\n'
(2)if (str1 - str2) 是比较字符是否相同
如果str1和 str2 中存储的字符相同,计算结果就是0,if(0),不进入if 代码块,此时字符相同,外层for循环继续执行,i++
不相同结果就不是0, if(非0)。进入if 代码块,i++后,break会跳出外层for循环
页:
[1]