如何检查变量是否等于某些文本?例如:
如果我用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作为我的变量。
答案 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");
}