C 是否显示错误消息?

C 是否显示错误消息?,c,C,Hi my program基本上是当用户输入无法识别的命令时,它会显示错误消息,但是当用户输入有效命令和无效命令时,它仍会显示错误消息 int main(){ char command[20]; printf("Enter either add, sub, mult, div, or EXIT:\n"); scanf("%5s", command); if(strcmp(command, "EXIT") || strcmp(command, "add" )

Hi my program基本上是当用户输入无法识别的命令时,它会显示错误消息,但是当用户输入有效命令和无效命令时,它仍会显示错误消息

int main(){

    char command[20];

    printf("Enter either add, sub, mult, div, or EXIT:\n");
    scanf("%5s", command);


    if(strcmp(command, "EXIT") || strcmp(command, "add" ) ||strcmp(command, "sub")|| strcmp(command,"div") || strcmp(command,"mult") != 0){
        printf("Warning either enter the following commands\n");

    }
    else
    {
        printf("Welcome\n");
        //function..
    }
    return 0;   
}
另外,我是C新手,正在进行实验,我不确定这是否是实现此功能的正确方法。

通过执行以下操作:

if (strcmp || strcmp || strcmp || strcmp != 0)
您似乎正在尝试同时对0检查所有不同的结果

这不是C的工作方式。您必须单独检查每个值

if (strcmp(command, "EXIT") &&
    strcmp(command, "add" ) &&
    strcmp(command, "sub" ) &&
    strcmp(command, "div" ) &&
    strcmp(command, "mult"))
 { /* Show Warning message */ }
翻译: 如果字符串不是EXIT,也不是add,也不是sub。。。。然后字符串不是任何已知的命令;因此,通过执行以下操作显示警告。

if (strcmp || strcmp || strcmp || strcmp != 0)
您似乎正在尝试同时对0检查所有不同的结果

这不是C的工作方式。您必须单独检查每个值

if (strcmp(command, "EXIT") &&
    strcmp(command, "add" ) &&
    strcmp(command, "sub" ) &&
    strcmp(command, "div" ) &&
    strcmp(command, "mult"))
 { /* Show Warning message */ }
翻译:
如果字符串不是EXIT,也不是add,也不是sub。。。。然后字符串不是任何已知的命令;因此,显示警告。

如果两个字符串匹配,strcmp函数返回0。因此,您的条件将始终计算为true,因为只有一个字符串可以与特定输入匹配。

如果两个字符串匹配,strcmp函数将返回0。因此,您的条件将始终计算为true,因为只有一个字符串可以与特定输入匹配。

您的条件是否为false?您的条件是否为false?