在 C 编程中使用逻辑运算符比较多个字符串无法正常工作

2023-12-19

我在尝试着检查用户字符串是否输入(小写用户输入后)与所需的三个字符串匹配 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(使用前将#替换为@)

在 C 编程中使用逻辑运算符比较多个字符串无法正常工作 的相关文章

随机推荐

  • 应用程序启动期间的键盘修改器

    我想捕获在应用程序启动期间是否按下了修改键 以确定全屏或窗口化 在主窗口构造函数中 我尝试检查键盘 修饰符 http msdn microsoft com en us library system windows input keyboar
  • JavaScript 的日期范围限制

    有两个文本类型的输入字段 用于以 mm dd yyy 格式写入开始日期和结束日期 我需要一个 JavaScript 函数来检查输入日期之间的日期范围间隔是否不超过 14 天 并且最大日期应该是当前日期 有没有插件或快速解决方案 我尝试使用
  • 调整大小之前传单地图无法正确显示

    我在 Binding scala 上使用带有 scalajs leaflet 外观的 Leaflet 并且地图初始化 显示不正确 为了重现这个问题 我准备了一个lihaoyi workbench页面类似于 scalajs leaflet 中
  • JQuery UI:在可放置放置时取消可排序

    我正在使用 JQuery 1 5 1 和 JQuery UI 1 8 11 我已经为许多项目添加了可排序 这里的任务是允许拖动排序 这一切都很好 但我也想合并 droppable 以便该项目可以被拖放到 复制我 区域 那里的任务将是复制该项
  • 获取 Windows 服务中的计算机名称?

    在 NET Windows 服务 C 中 如何获取计算机名称 这是一个可靠的方法 还是应该将其包装在 try catch 中 看着那 这环境等级 http msdn microsoft com en us library system en
  • glassPane 不阻止输入

    我用 java 构建了一个小型 GUI 游戏 有时我使用 glassPane 暂时阻止所有鼠标输入 我以前使用过 glassPane 没有任何问题 但这次它不会阻止鼠标输入 因此 当 glassPane 启用时 我仍然可以按下 conten
  • Django:无法运行自定义命令

    我编写了一个简单的自定义命令 hello py from django core management base import NoArgsCommand class Command NoArgsCommand help prints he
  • 如何检查是否按下了键盘辅助键(Shift、Ctrl 或 Alt)?

    我正在构建一个用户界面Qt创建者 https en wikipedia org wiki Qt Creator我希望按钮能够使用不同的修饰符执行不同的操作 所以我想我可以调用具有动态字符串属性的函数 这些函数将根据修饰符执行操作 有没有更简
  • 带参数的 RedirectToAction

    我有一个从锚点调用的动作 Site Controller Action ID where ID is an int 稍后我需要从控制器重定向到相同的操作 有什么聪明的方法可以做到这一点吗 目前我正在藏匿ID在临时数据中 但是当你 返回后再次
  • HttpPostedFileBase.SaveAs 方法问题

    我有一个 asp net mvc 应用程序 它上传文件并将其存储在网站所在的目录之一中 我的问题是 当您执行 HttpPostedFileBase SaveAs 方法并使用与文件夹中现有文件名相同的名称保存它时 HttpPostedfile
  • 何时在 Angular2 中使用 ngrx/effect

    我有一个与 api 通信的 anuglar2 项目 最近 我决定集成 ngrx store 来维护组件的状态 并遵循 dump smart 组件架构 但在继续前进的过程中 我读到了有关 ngrx effect 的内容 它可以在 api 请求
  • 重置 Lucee 服务器管理员密码

    我最近安装了 Lucee 但记不起为服务器管理员设置的密码 luceee admin server cfm 如何重置服务器管理员密码 在服务器配置文件中 lib ext lucee server context lucee server x
  • Flyway clean 不会删除调度程序作业或程序

    我最近在我的开发模式中添加了一个调度程序作业和程序 当我尝试刷新架构时 我做了一个飞行路线clean 然后是飞行路线migrate 我收到以下错误 ERROR Found non empty schema TESTDATA without
  • 密钥库文件格式无效(z/OS Unix 系统服务)

    我正在使用 z OS java jar 它需要密钥库和信任库文件 我已将所有文件通过 FTP 传输到 z OS Unix 目录 大型机 执行 jar 时 我收到 无效的密钥库文件格式 错误 当我在本地计算机上对密钥库文件使用 keytool
  • 在 Pandas 的数据框中查找前 10 个

    我有一个大约 800 行的数据框 df 数据如下 姓名 杰森年龄 45 门票 1张 Name Kim年龄 30 门票 0 1 有票 0 没有票 抱歉 格式不太好 数据框中基本上有 3 列 姓名 年龄和票证 使用 Pandas 我想知道查找拥
  • “致命错误:解包可选值时意外发现 nil”是什么意思?

    我的 Swift 程序崩溃了EXC BAD INSTRUCTION以及以下类似错误之一 这个错误是什么意思 我该如何修复它 致命错误 解包可选值时意外发现 nil or 致命错误 隐式解包可选值时意外发现 nil This post is
  • 在 System.__ComObject 上调用 GetMethod() 始终返回 null

    我正在使用 NET 4 0 和动态在运行时调用 System ComObject 上的成员 我通过以下方式实例化该对象 dynamic DrApi DrApi Activator CreateInstance SprImportedType
  • 如何从订单详细信息页面删除产品链接? [关闭]

    Closed 这个问题需要细节或清晰度 help closed questions 目前不接受答案 我正在尝试禁用我的帐户页面中的订单详细信息表下的产品链接 我不希望用户点击产品并转到产品页面 只需使用以下非常简单的代码片段即可从订单详细信
  • 使用 PHP 快速将 (.rtf|.doc) 文件转换为 Markdown 语法

    我已经手动将文章转换为 Markdown 语法几天了 这变得相当乏味 其中一些长达 3 或 4 页 全文采用斜体和其他强调文本 有没有一种更快的方法可以将 rtf doc 文件转换为干净的 Markdown 语法 我可以利用 如果你碰巧使用
  • 在 C 编程中使用逻辑运算符比较多个字符串无法正常工作

    我在尝试着检查用户字符串是否输入 小写用户输入后 与所需的三个字符串匹配 i e rock or paper or scissor 如果不符合要求 系统将打印这是一个错误的输入 不然我就做点什么 当我只付出没有逻辑 的一项检查操作员 工作正