[说明] 嘿伙计们,我是编程和网站的新手,但我知道它很长一段时间,它总是对我很有帮助,但刚才我决定开帐户,因为我真的需要在这个BIG寻求帮助问题我一直有:
我已经完成了用C处理字符串的命令,但我找到的最好的东西是" strcmp"和" strncmp",但那不是我想要的,因为它比较了两个字符串。我只是想比较这样的......
char input[3];
do {
//important code
printf ("You want to continue??);
fflush(stdin);
gets(input);
} while (input == "yes" || "Yes);
它不起作用,我不需要使用字符串,只需要一个像:" y"是的。我有什么方法可以做我想做的事情?我如何将这一个字符串与这些值进行比较? 顺便问一下,为什么我不能在代码部分中使用tab?对不起新手问题...
感谢您的帮助,我真的很感激。我知道很多学生都有同样的疑问,所以mods保留了它。
再见!
答案 0 :(得分:1)
如果要进行字符串比较,请使用strcmp
。您可以根据需要比较一个变量,但只能使用两个不同的值。更改行:
while (input == "yes" || "Yes");
到:
while ( strcmp(input,"yes") == 0 || strcmp(input, "Yes") == 0);
另外,改变:
char input[3];
到:
char input[4];
因为您需要考虑终止\0
字符。
答案 1 :(得分:0)
在这里,我为你想要实现的目标写了一个简单的解决方案。
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main()
{
char input[4];
do {
printf ("You want to continue??");
fflush(stdin);
gets(input);
} while (strcmp(input, "yes") == 0 || strcmp(input, "Yes") == 0);
return 0;
}
答案 2 :(得分:0)
很可能你会遇到被延续的换行符 到下一个输入。这是一个解决方案。
#include <stdio.h>
#include <stdlib.h>
int
main(void)
{
char input[4], garbage[50];
do
{
//important code
printf ("You want to continue??");
scanf("%s", input);
fgets(garbage, sizeof(garbage), stdin); //Newline char is now stored into garbage.
} while (strcmp(input,"yes") == 0 || strcmp(input,"Yes") == 0 );
return 0;
}