如何检查变量是否等于某些文本?例如:
如果我用 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 作为变量。
最佳答案
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;
}
关于linux - 如何检查变量是否等于 C 中的文本?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26284408/