在 C 中使用 fgets 和 strcmp [重复]

2024-05-07

我试图从用户那里获取字符串输入,然后根据他们输入的输入运行不同的函数。

例如,假设我问:“你最喜欢的水果是什么?”我希望程序根据他们输入的内容进行评论...我不知道该怎么做。这是我到目前为止所拥有的:

#include <stdio.h>
#include <string.h>

char fruit[100];

main() {
    printf("What is your favorite fruit?\n");
    fgets (fruit, 100, stdin);
    if (strcmp(fruit, "apple")) {
        printf("Watch out for worms!\n");
    }
    else {
        printf("You should have an apple instead.\n");
        }

}

当我运行该程序时,无论我输入什么,它都不会执行 else 语句。

感谢您的帮助!


请注意代码中的两件事:

  1. fgets 保留尾随 '\n'。在与字符串“apple”进行比较之前,fruit 中的相关字符应替换为“\0”。
  2. 当两个字符串相同时,strcmp返回0,因此if子句应该根据你的意思进行更改。(if子句中的fruit和“apple”是等效的)
  3. C main 函数的标准用法是int main(){ return 0;}

修改后的代码:

#include <stdio.h>
#include <string.h>

char fruit[100];

int main() {
    printf("What is your favorite fruit?\n");
    fgets (fruit, 100, stdin);
    fruit[strlen(fruit)-1] = '\0';
    if (strcmp(fruit, "apple") == 0) {
        printf("Watch out for worms!\n");
    }
    else {
        printf("You should have an apple instead.\n");
    }
    return 0;
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在 C 中使用 fgets 和 strcmp [重复] 的相关文章

随机推荐

  • 按数字字段排序,其中时间戳位于 Cloud Firestore 中的给定日期?

    在我的 Firestore 数据库中 我的集合中有一些文档 如下所示 name Item 1 count 2 timestamp January 29 2018 at 3 43 12 PM UTC 8 我正在尝试查询这个集合 以便文档按以下
  • 如何在聚焦或单击时突出显示 ImageView?

    一个很好的例子是 Twitter 启动屏幕 首次启动应用程序时看到的带有大图标的屏幕 甚至当您聚焦应用程序图标时只需查看应用程序托盘 基本上 我需要突出显示 ImageView 其中突出显示 ImageView 中图像的轮廓 并且看起来像是
  • 通过 WooCommerce 中的管理员编辑订单自动添加或更新自定义费用

    我们有一个特殊情况 我们会在收到订单后向客户开具付款发票 而不是让他们在结账时付款 运费是手动计算的并添加到订单中 然后我们在总额中添加 3 的信用卡费用 为了自动化此过程 我创建了一个脚本 一旦通过后端设置了运费 该脚本就会计算 3 的费
  • 在类中调用类方法

    我意识到这可能是一个幼稚的问题 但我仍然无法弄清楚如何在 Ruby 类中从另一个方法调用一个方法 即在 Ruby 中可以执行以下操作 class A def met1 end def met2 met1 call to previously
  • JavaScript随机生成0或1个整数[重复]

    这个问题在这里已经有答案了 当我编写脚本来填充数据库时 我试图生成随机 0 或 1 如果是1 我会将其保存为男性 反之亦然 将其保存为0 在我的 JavaScript 中 Math floor Math random 1 1 我用它来生成
  • 将自定义文件与我的 Android 应用程序关联

    我想将特定扩展名的文件 例如任何扩展名为 xyz 的文件 与我的应用程序关联 这意味着 当用户在文件资源管理器 或其他地方 如 gmail 驱动器等 中点击 SaveFile1 xyz 时 我的应用程序应该启动 并且文件的 Uri 将在 I
  • 如何在 Python 中从平面列表构建嵌套列表? [关闭]

    Closed 这个问题需要细节或清晰度 help closed questions 目前不接受答案 我有一个简单的列表 例如 flat 1 1 1 1 1 1 1 2 2 2 1 2 2 3 我需要转换为嵌套列表 其中每个级别 破折号后跟数
  • 当日志在不同进程中发出时,caplog 中的消息为空

    我正在使用 log cli true 运行测试 剧本 import logging import sys from multiprocessing import Process logging basicConfig stream sys
  • 找不到 CURL NSS 客户端证书 myCert

    我正在尝试使用curl 访问https 地址 将我的证书传递给它并使用我自己的信任库 我们有自己的CA 验证服务器的证书 我现在以 root 身份运行 curl v cert home cdfoote myCertificate pem m
  • 从原型创建 Maven 项目时出错:501 HTTPS 必需

    I run mvn archetype generate并得到这个错误 Error reading archetype catalog http repo maven apache org maven2 org apache maven w
  • NamedScopes Ninject 绑定和异步(线程)

    我的项目由服务和存储库构成 所有存储库共享数据库上下文 在我的一个服务层中 我有一个使用存储库写入数据库的异步方法 Web 请求将完成并处理上下文 然后此方法才能使用它 我试着去理解命名范围 http www planetgeek ch 2
  • 如何生成多值 INSERT 的 postgresql 转储而不是 COPY 并将插入批处理到显式事务中?

    我在任何地方都找不到关于如何在通过生成数据库转储时将插入批量化为每事务 100 个插入的批次的任何信息pg dump公用事业 我究竟需要如何执行它 我没有找到任何参数 gt man pg dump 来执行此操作 即使是最精致的answer
  • 填充 MultiIndex Pandas Dataframe 中的日期空白

    我想修改 pandas MultiIndex DataFrame 以便每个索引组都包含指定范围内的日期 我希望每个组都用值 0 或NaN Group A Group B Date Value loc a group a 2013 06 11
  • 仅在 PHPUnit 中需要时才执行 dataProviders?

    我的测试套件即使只是开始也需要几分钟 这是因为数据提供者在 phpunit 启动时立即执行 并且它们的所有数据 数千个对象 都保存在内存中 有没有办法在测试运行之前调用 dataProviders 我不在乎在屏幕上看到如此精确的进展 Tha
  • MongoDB 未找到合适的服务器

    我在连接到副本集时遇到问题 MongoDB Driver Exception ConnectionTimeoutException No suitable servers found serverSelectionTryOnce set S
  • React 中模型更改 11 次后 Froala 编辑器崩溃

    我在没有身份的情况下在线构建了一个简单的编辑器 在后端实现Node JS 与 Socket IO MongoDB 以及客户端使用React连接Socket IO 为了创建编辑器 我使用了弗罗拉编辑 https www froala com
  • 在网页中显示 Google 工作表单元格的内容

    我有一个包含 html 代码的单元格的 google 工作表 我想知道在网页中显示此 html 的最佳方式 我尝试过谷歌电子表格 API 和谷歌可视化 API 以下是如何使用 Javascript 图表 API 显示单个单元格中的信息 也许
  • 用更有意义的文本替换 GCC 输出中的 a-hats [重复]

    这个问题在这里已经有答案了 可能的重复 为什么 gcc 的所有错误消息中都有 https stackoverflow com questions 547071 why does gcc have a in all its error mes
  • const_iterator 和 iterator 有什么区别? [复制]

    这个问题在这里已经有答案了 这两者在 STL 内部的实现方面有什么区别 性能方面有什么区别 我想当我们以 只读方式 遍历向量时 我们更喜欢const iterator right 谢谢 没有性能差异 A const iterator是一个指
  • 在 C 中使用 fgets 和 strcmp [重复]

    这个问题在这里已经有答案了 我试图从用户那里获取字符串输入 然后根据他们输入的输入运行不同的函数 例如 假设我问 你最喜欢的水果是什么 我希望程序根据他们输入的内容进行评论 我不知道该怎么做 这是我到目前为止所拥有的 include