我在尝试着检查用户字符串是否输入(小写用户输入后)与所需的三个字符串匹配 i.e. rock or paper or scissor。如果不符合要求,系统将打印这是一个错误的输入。不然我就做点什么。
当我只付出没有逻辑 || 的一项检查操作员,工作正常即,将用户输入的字符串与所需的字符串进行比较。但当我在使用逻辑运算符无法正常工作即,如果我给出正确的关键字,则表明这是错误的输入。
作为一个初学者,我在 StackOverflow 中搜索后也无法找出可能的原因。提前提供任何帮助。谢谢????
#include <stdio.h>
#include <string.h>
#include <ctype.h>
int main()
{
char game[40];
printf("Enter one among rock, paper and scissor: ");
scanf("%s", &game);
for (int i = 0; game[i]; i++)
{
game[i] = tolower(game[i]);
}
if ((strcmp(game, "rock") == 1) || (strcmp(game, "paper") == 1) || (strcmp(game, "scissor") == 1))
{
printf("You entered a wrong input\n");
}
else
{
/* Doing Something */
}
}
阅读友好手册:man strcmp
如果发现 s1(或其前 n 个字节)小于、匹配或大于 s2,则 strcmp() 和 strncmp() 函数分别返回小于、等于或大于零的整数。
也就是说,如果字符串匹配,strcmp
返回 0。
所以要检查是否有东西not一场比赛,德友好摩根说我们应该这样做:
a!=0 AND b!=0 AND ...
.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)