我试图在C中编写一个函数来查询用户的输入,然后根据该输入执行一组特定的任务。我想出的代码如下:
int exit = 1;
int main(void)
{
while (exit)
{
action();
}
}
void action()
{
char x[31];
fgets(x, 30, stdin);
chomp(x);
if (x == "stop")
{
exit = 0;
}
}
问题是,每当我输入"停止"进入控制台,它没有注册,循环只是让我不得不按CTRL-C。那么比较有什么问题呢?我输入后打印x,打印出来"停止",所以我不明白为什么if语句不起作用......
顺便说一句,chomp()函数是我自己设计的,它只是删除了第一个/ n并用/ 0替换它。
答案 0 :(得分:1)
您需要使用字符串比较功能,strcmp()
或者,如果您只关心前n个字符,那么strncmp()
。请参阅C library reference了解如何使用它。
答案 1 :(得分:0)
您可以使用strcmp()或strncmp()函数来比较代码中的两个字符串。请查看以下代码。
#include <stdio.h>
int exit_code = 1;
void action()
{
char x[31];
fgets(x, 30, stdin);
if ( (strncmp(x,"stop",4)) == 0)
{
printf("Both Strings are equal....\n");
exit_code = 0;
}
}
int main(void)
{
while (exit_code)
{
action();
}
}