如何检查变量是否等于单词

时间:2016-01-02 11:14:33

标签: c string

我有这个代码。我希望当用户写入是时,程序将打印正常。 但是,程序会写

  

“是的是未宣布的”。

如何让程序将'yes'视为单词而不是变量?

char a = ' ';
scanf("%c",&a);
if(a == yes)
{
    printf("OK");
}

2 个答案:

答案 0 :(得分:2)

首先,'yes' word sting,如果你的意思是),{{1}是的。

那就是说,你已经离开联盟了。一个可能的实现可能看起来像

  1. 首先,您需要为输入定义一个数组,例如"yes";因为您需要根据需要存储多个字符。 (此处使用的尺寸仅供参考)。
  2. 使用char a[12] = "no"扫描用户输入,例如scanf();
  3. 使用scanf("%11s", a)中的strcmp()进行比较,例如string.h
  4. 另一种可能的实现可以使用if (!strcmp(a, "yes")) enum"YES",将用户选择作为整数并使用良好的旧"no"比较运算符。

答案 1 :(得分:1)

您的代码中存在许多问题。

首先,您将==声明为a(字符),这意味着您无法将其与"是"进行比较。因为这是一个字符串,或char数组,因为这是C。

它由4个​​字符组成(3为文本,1为char;在C"字符串"为空终止,因此必须有结束字符)

声明你的变量并按如下方式阅读:

\0