如何在C语言中验证一个字符串变量是否等于在do中的变量不是特定的字符串? (不比较两个字符串)

时间:2017-05-24 05:59:50

标签: c string verification

[说明] 嘿伙计们,我是编程和网站的新手,但我知道它很长一段时间,它总是对我很有帮助,但刚才我决定开帐户,因为我真的需要在这个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保留了它。

再见!

3 个答案:

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