#include<stdio.h>
#include<string.h>
int main()
{
char a1[80],a2[80],*s1=a1,*s2=a2;
gets(s1);
gets(s2);
if(!strcmp(s1,s2))
printf("*");
else
printf("#");
printf("%d\n",strlen(strcat(s1,s2)));
return 0;
}
如果我输入s1:book回车
s2:book空格回车
s1与s2依次比较到最后,'\0'-' '不是小于0的吗,然后逻辑非,不是应该打印*这个出来的么?
很简单,
== 0
才是逻辑非,> 0
和< 0
都不是逻辑非。'\0'-' '
确实小于0,但它不是逻辑非。