将结构中的char与用户输入进行比较

时间:2016-01-24 20:55:13

标签: c struct user-controls

因此,在将结构中的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;
}

1 个答案:

答案 0 :(得分:1)

如果字符串中有足够的空格,函数fgets会在字符数组中放置与按下的Enter键对应的换行符。

你应该删除这个角色。

例如

fgets(input_login,11,stdin);
input_login[strcspn( input_login, "\n" )] = '\0';