测试点2:题中只说正确的密码不包含空格、TAB等特殊符号, 但没说输入的密码中没有。
测试点5:字符串长度直接设长一点,按题里预留一个'\0'设21过不去测试点5
注意:只有输入N次错误才输出Account locked,不到N次不会输出这个
/*题中只说正确的密码不包含空格、TAB等特殊符号, 但没说输入的密码中没有。*/
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
int main(){
char password[100];//char password[21];***测试点5,长度直接设长一点,别按题里来
int N;
scanf("%s %d",password,&N);
getchar();
int i=0;
for(;i<N;i++){
char s[100];
fgets(s,100,stdin);
//getchar();//导致读取丢弃一个字符(使首字母消失)
if(s[strlen(s)-1]=='\n'&&strlen(s)!=0)
s[strlen(s)-1]='\0';
char end[2]={'#','\0'};
if(strcmp(password,s)==0){//密码正确
printf("Welcome in\n");
return 0;
}
else if(strcmp(s,end)==0){//输入结束
break;
}
else
printf("Wrong password: %s\n",s);
}
//如果用户在达到尝试次数之前输入了 #,程序应该直接结束,而不输出 Account locked。
if(i==N)
printf("Account locked\n");
return 0;
}