如果使用字符串不起作用

时间:2016-10-16 17:16:39

标签: c string visual-studio-2015

我想用C语言制作一个股票计算器,它仍在进行中。我使用Microsoft Visual Studio 2015制作它。

当我输入一个字符串(例如:"refrigerator")并使用printf打印它时,我的电脑可以打印它。但当该字符串放入if时,它无法继续。进度停在:

scanf_s("%s",stock1,sizeof(stock1));
fflush(stdin);

在我输入"refrigerator"之后,if语句没有出来。 这是我的代码:

    int fan, refrigerator, lpg;
    int menu;
    char stock1[15], stock2[15];
    int total1, total2, totalstock;
    int check;


    printf("Type the item that you want to add\n");
    scanf_s("%s",stock1, sizeof(stock1));
    fflush(stdin);

    if (stock1 == "refrigerator")
    {
        printf("How many item would you like to add?\n");
        scanf_s("%d", &total1);
        fflush(stdin);


    }

    getchar();
    return 0;
}   

3 个答案:

答案 0 :(得分:1)

由于您使用的是C语言,因此必须使用strcmp函数。 如果两个字符串具有相同的值,则strcmp函数返回0值。 以这种方式使用它:

if(strcmp(string,"refrigerator") == 0)
{
    /*string is equal to "refrigerator"*/

} else {

    /*string is not equal to "refrigerator"*/   
}

不要忘记包含string.h

答案 1 :(得分:1)

在C中,您应该使用strcmp函数来比较字符串。例如,在您的情况下,您要将您的字符串与"冰箱"进行比较。以下列方式:

if(strcmp(stock1, "refrigerator") == 0)
{
  /* etc */
}

有很多字符串函数可供使用 - 您应该熟悉它们。

祝你好运。

答案 2 :(得分:1)

您的问题是您正在将字符串文字与char数组进行比较,这是将字符串文字与必须使用的char数组进行比较的错误方法

if(strcmp(stock,"refrigerator")==0)

而不是

stock1=="refrigerator"

strcmp如果字符串1与字符串2相同则返回0,如果字符串1大于字符串2,则返回0;如果字符串1小于字符串2,则返回< 0