C:如果还有关于变量的问题

C:如果还有关于变量的问题,c,if-statement,C,If Statement,我是编程新手,我是C语言的初学者,我想问一下我的问题,什么时候做if else: 每种水果的代码 苹果公司的A-001售价3美元 A-002适用于4美元的葡萄 B-001鳄梨,2美元 B-002为橙色加1美元 然后输入将被删除 数量,水果代码 输出将是 总计(数量*价格) 但当我这样做的时候: If(果码=='A-001') 它告诉我字符常量太长。。水果代码应该使用什么?它是整数还是字符还是什么 这是我的代码: q代表数量 h表示价格 K代表水果代码 int main(){ int q,h,k,

我是编程新手,我是C语言的初学者,我想问一下我的问题,什么时候做if else:

每种水果的代码

苹果公司的A-001售价3美元

A-002适用于4美元的葡萄

B-001鳄梨,2美元

B-002为橙色加1美元

然后输入将被删除 数量,水果代码

输出将是 总计(数量*价格)

但当我这样做的时候:

If(果码=='A-001')

它告诉我字符常量太长。。水果代码应该使用什么?它是整数还是字符还是什么

这是我的代码:

q代表数量 h表示价格 K代表水果代码

int main(){ int q,h,k,t

printf("============================================\n");
printf("=                 Program                  =\n");
printf("============================================\n");
printf("     Fruit Code     Fruit       Prices \n");
printf("      A-001         Apple      Rp. 13.000 \n");
printf("      A-002         Grape      Rp. 16.000 \n");
printf("      B-001         Avocado    Rp. 10.000 \n");
printf("      B-002         orange     Rp. 12.000 \n");
printf("============================================\n");
printf("\n");
printf("  \n");
printf("============================================\n");
printf("=                    Form                  =\n");
printf("============================================\n");
printf("Transaction Time:  ");
scanf("%s", &t);
printf("Fruit Code : ");
scanf("%s", &k);

if(k=='A-001')
    printf("You Choose Apple");
}
else if(k='A-002'){
    printf("You Choose Grape");
}
else if(k='B-001'){
    printf("You Choose Avocado");
}
else{
    printf("You Choose orange");
}


printf("Quantity: ");
scanf("%s", &q);

getch();
return 0;
}

您需要对字符串使用双引号,而不是单引号。单引号仅用于单个字符


您也不能比较那样的字符串。您需要使用类似于strcmp()的东西来比较C中的字符串,请使用strcmp函数。

可能最终成为C样式的字符串;也就是说,它将是一个指针(类型为
char*
)指向以null结尾的
char
元素数组

然后使用
if(!strcmp(fruitcode,“A-001”)
行中的内容来测试是否相等

请注意,我使用了双引号字符来表示字符串文字


(使用单引号字符表示完全不同的内容:如果在单引号字符中包含多个字符,则C将其解释为字符数组文字。这实际上表示的是实现定义的;我认为编译器正在抱怨字符数组的长度过大。)对于
sizeof(int)

您需要使用
strcmp

if (strcmp (fruitcode, "A=001") == 0)

在C语言中,您无法将
子代码
的“A-001”
进行比较。C的
=
运算符只能比较字符,不能比较字符串(只能比较单个字符)

如果要比较它们,请执行以下操作:

strcmp(结果代码,“A-001”);


请注意我的答案中的
;这意味着一个字符串。在您的问题中,
意味着一个字符。在
中不能有多个字符(除了像
”\n'
这样看起来像2个字符但由1表示的特殊字符(本例中为换行字符).

您可以使用任何您想要的类型,这取决于您需要使用它做什么。请注意,
'
用于
char
s,而不是字符串,并且字符串不能与
=
进行比较。使用“A-001”实际上是“A-001”的一部分。“string”/“char”您是如何使用字符串或什么进行编码的?显示您的代码示例。显示您的代码!此外,不要只在此处转储代码并告诉您已发布。发布MCVE。