if语句中的字符串比较不起作用

时间:2016-03-16 23:12:07

标签: c

我是C编程的新手。你能告诉我,我的代码有什么问题吗?看起来if语句不起作用,而是跳转并打印else语句。

#include <stdio.h>
#include <stdlib.h>

int main()
{
    char profession;

    printf("what is your profession? \n");
    scanf(" %s", profession);

    if(profession==“QA”)
    {
        printf(“Go and Test\n“);
    }
    else
    {
        printf("Do whatever you want");
    }

    return 0;
}

2 个答案:

答案 0 :(得分:0)

首先,您无法比较C中的字符串,而是使用strcmpstrncmp

其次,在您的代码中,professionchar,并且您希望在其中放置一个字符串(多个字符)。它不会起作用。您可以创建char *char上的指针)(不要忘记malloc())或char [](字符数组)。

答案 1 :(得分:0)

首先,C中的字符串是字符数组,因此您必须将专业声明为指针,指向一个字符数组。所以该语句看起来像这个char* profession,其次,你必须使用一个名为strcmp(char* a, char* b)的方法,它接受两个char指针。如果它们相等,则返回0。我将包括答案,但我认为有更好的方法来编写此代码。

int main() {

    char* profession;
    char* compare = "QA";
    printf("What is your profession?\n");

    scanf(" %s", profession);

    if(strcmp(profession, compare) == 0) {
            printf("Go and Test\n");
    } else {
            printf("Do whatever you want");
    }

    return 0;
}