----------------解决方案--------------------------------------------------------
if后面的括号里是0就是非,就不执行下一条语句;
if后面的括号里是非0就是是,就执行下一条语句;
当strcmp(name1,name2)等于非0时,前面加!就是0,也就是非,说明这两个字符串不相等,也就不执行下一条语句!
当strcmp(name1,name2)等于0时,前面加!就是非0,也就是是,说明这两个字符串相等,也就执行下一条语句!
----------------解决方案--------------------------------------------------------
怎么这么多的高手啊
不过你应该多看看c的运算符你也许就能更加明白这个原因了
我有些多余了啊!
以后你在编程的时候可以试着用strcmp(name1,name2)==0这样的方法就不会有那么多逻辑绕来绕去的了
----------------解决方案--------------------------------------------------------
......
晕~
首先:strcmp(name1,name2)返回值有3种情况 >0 <0 =0
好好查查函数字典吧!!
#include<stdio.h>
#include<string.h>
int main(viod)
{
char name1[10];
char name[10];
if(!strcmp(name1,name2))
printf("两字符串相同!\n");
else
printf("两字符串不同!\n");
}
可以写成:
#include<stdio.h>
#include<string.h>
int main(viod)
{
char name1[10];
char name[10];
strcmp(name1,name2)?puts(两字符串不同!):puts(两字符串相同!);
return 0;
}
----------------解决方案--------------------------------------------------------