因此,在将结构中的char与用户输入进行比较时,出于某种原因编写代码时,它实际上并不是真的。除非用户输入在某种程度上不相同。
struct user
{
char login[11];
};
int main()
{
char input_login[11];
struct user goku;
strcpy(goku.login,"goku");
printf("Please enter the login:");
fgets(input_login,11,stdin);
printf("Please enter the password:");
fgets(input_password,11,stdin);
if (strcmp(goku.login, input_login) == 0) // not working
{
printf("correct");
}
else
{
printf("%s",goku.login);
}
return 0;
}
答案 0 :(得分:1)
如果字符串中有足够的空格,函数fgets
会在字符数组中放置与按下的Enter键对应的换行符。
你应该删除这个角色。
例如
fgets(input_login,11,stdin);
input_login[strcspn( input_login, "\n" )] = '\0';