我想用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;
}
答案 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