#include <stdio.h>
#define MAX 1024//为什么定义MAX为1024
int main()
{
char str1[MAX];
char str2[MAX];
int i = 0;
unsigned int n;
printf("请输入第一个字符串:");
while ((str1[i++] = getchar()) != '\n')
;
printf("请输入第二个字符串:");
i = 0;
while ((str2[i++] = getchar()) != '\n')
;
printf("请输入比较的字符数:");
scanf("%u", &n);
for (i = 0; i < n; i++)
{
if (str1[i] - str2[i])//这个条件判断语句有点不理解
{
i++;
break;
}
}
printf("比较的结果是:%d\n", str1[i-1] - str2[i-1]);//为什么用的是 str1[i-1] - str2[i-1]表示比较结果
return 0;
}
str1[i] - str2[i]
是两个字符的ASCII值相减,
如果str1[i]和str2[i]相同,那么结果不等于0,
如果str1[i]的字符排在str2[i]的前面,那么结果<0
如果str1[i]的字符排在str2[i]的后面,那么结果>0
循环退出的条件有两个