我的代码:
#include<stdio.h>
#include<string.h>//strcmp函数的头文件
int main()
{
char s[21],b[1000];//要把b的长度设置大一点否则会出现运行时错误 !
int n,count=0;
scanf("%s %d",s,&n);
getchar();
while(1){
gets(b);
count++;
if(b[0]=='#'&&b[1]=='\0')//满足只有单个#,注意是单个!!
{
break;
}
//if(strcmp(s,b)==0)//判断两个字符串相等,相等则为0
if(b==s) //为啥用这个不能得到welcome in???
{
printf("Welcome in\n");
break;
}
else{
printf("Wrong password: %s\n",b);
if(count==n){
printf("Account locked\n");
break;
}
}
}
return 0;
}
在pta上的结果:
原因是在第17行 if(b==s) ,如果改成第16行的注释if(strcmp(s,b)==0)结果就正确,请问这是为什么?难道b==s不能判断字符串相等吗