如何检查变量是否等于C中的文本?

时间:2014-10-09 17:06:45

标签: linux c

如何检查变量是否等于某些文本?例如: 如果我用scanf输入“Hi”,那我怎么能检查“Hi”是否输入了其他内容。 我制作了一个程序,但它有错误。

错误:

feel.c: In function ‘main’:
feel.c:9:13: error: invalid operands to binary == (have ‘float’ and ‘char *’)
  if ( value == "Linux mood!" ) {
             ^
feel.c:12:13: error: invalid operands to binary == (have ‘float’ and ‘char *’)
  if ( value == "So sad." ) {
             ^
feel.c:15:13: error: invalid operands to binary == (have ‘float’ and ‘char *’)
  if ( value == "Happy!" ) {
             ^
feel.c:18:2: error: ‘else’ without a previous ‘if’
  else {
  ^

我使用float作为我的变量。

2 个答案:

答案 0 :(得分:2)

Float用于存储数字而不是字符串。您应该使用char *来存储字符串。另一个问题是,你不能将C风格的字符串与==运算符进行比较。你必须使用strcmp函数。

strcmp是C库的一部分。这不是你可以安装的东西。

示例:

#include <stdio.h>
#include <string.h>
int main(int argc, char *argv[])
{
    printf("Please enter a string:\n");
    char buff[20]; //Note that input can be only 19 characters
    scanf("%s", buff);

    if(!strcmp(buff, "Hello"))
    {
        printf("They are equal!\n");
    }
    else
    {
        printf("They are not equal!\n");
    }

    return 0;
}

答案 1 :(得分:0)

if (!strcmp(text, "hi")) {
    printf("happy to get a hi");
}
else {
    printf("why don't you say a hi");
}