为什么我不能使用变量=+;或变量!=-以C为例

为什么我不能使用变量=+;或变量!=-以C为例,c,C,我正在用switch case做一个简单的计算器,但我遇到了一些问题,决定用另一种方法来检查用户输入的内容是否无效,但我无法让它工作 这是程序中的一段代码: if (choice!="+"&&choice!="-"&&choice!="*"&&choice!="/"); { printf("The type of operation is invalid\n"); invalid=1; printf("Chose t

我正在用switch case做一个简单的计算器,但我遇到了一些问题,决定用另一种方法来检查用户输入的内容是否无效,但我无法让它工作

这是程序中的一段代码:

if (choice!="+"&&choice!="-"&&choice!="*"&&choice!="/");
    {
    printf("The type of operation is invalid\n");
    invalid=1;
    printf("Chose the type of operation, + for sum, - for subtraction, * for multiplication and / for division\n");
    scanf("%c", &choice);
    }
我无法验证用户输入的内容是否与+、-、*或/不同

我想得到一些帮助。
提前谢谢你

在您的代码中,我看到以下语句:

scanf(“%c”和&choice)

所以我判断变量'choice'的类型是char

对于字符比较,需要使用单引号,而不是双引号。因此,更换

if(choice!=“+”&&choice!=“-”&&choice!=“*”&&choice!=“/”

if(choice!='+'&&choice!='-'&&choice!='*'&&choice!='/')


另外,从
if
语句末尾删除分号。这没有意义。

使用
而不是
对于1个字符,在字符常量周围使用单引号。实际上可能重复,因为OP没有给我们
选项的声明
,它可能是。如果选择的是
字符
,则您希望针对
字符
进行测试,即
“+”
。如果选择是一个
char*
,您需要使用
strcmp
@user2064000进行测试:您的建议假设
choice
是一个字符串,而它很可能不是字符串(请参阅调用
scanf
)。