【问题标题】:I want to see if a character is present in a string我想查看字符串中是否存在字符
【发布时间】:2010-07-21 15:05:53
【问题描述】:

我正在用 C++(典型游戏)编写一个程序,您需要在其中猜测一个字母,它会检查它是否存在于字符串中。

例如

秘密字符串:我喜欢编程。

猜测1:'a'

显示:。 .... .. .....一个...

等等

但我不知道如何查看一个字符是否在这个秘密字符串中。

我正在使用 std::string(强制)

感谢任何帮助!

【问题讨论】:

  • +1 用于使用字符串而不是字符数组!
  • @Amardeep 我讨厌这两者之间的转换... +1 对您的评论。
  • @AnonymousPi +1 无限评论循环:-P

标签: c++ string character


【解决方案1】:

从学习搜索文档开始,例如:http://www.cplusplus.com/reference/string/string/。 (提示:你想“找到”一些东西……)

【讨论】:

  • @paercebal:你怎么知道这不仅仅是一个业余爱好者学习编写游戏程序?大多数家庭作业倾向于使用 char 数组并禁止使用库函数。此外,您不会仅仅通过告诉他们哪个函数在字符串中找到一个字符来为他们提供整个游戏。 (哦,+1 文档)。
  • @Amardeep :问题的表述方式、问题本身以及一些提示,例如“我正在使用 std::string (obligatory)”。 cpluplus.com 是一个很好的 C++ 参考,答案的作者都指着它,并给出了提示... ^_^ ...
  • 链接已损坏 :)
  • “总是引用重要链接中最相关的部分,以防目标站点无法访问或永久离线”stackoverflow.com/help/how-to-answer
【解决方案2】:

您可以使用find_first_of

【讨论】:

  • 你可以,但它并不是真正适合这项工作的。它旨在查找一组字符中的任何一个。
  • 函数也重载到只取一个字符
  • 更不用说所述字符集很可能由单个字符组成。不过,使用string::find 会使您的代码更加简洁,因为在这种情况下与string::find_first_of 的功能差异无关。
  • 是的,这是真的。是的,采用单个字符是重载的,是的,您还可以传递一个只包含一个字符的字符串(这就是单字符版本的作用,间接地)。尽管如此,当您打算查找一组字符中的第一个字符时,使用“first_first_of”充其量是一种误导,也是一个糟糕的主意。编写代码时,其他人的理解是主要的,编译器是次要的(或者应该无论如何)。
  • @Jerry:我们显然有不同的投票标准。如果答案实际上是错误的或严重损害知识库,我只会投反对票。如果违规行为得到纠正,我将撤销它。如果答案提供了有用的东西,即使该有用的东西可能不是 100% 与原始问题密切相关,我也会投票赞成。我觉得 cmets 是一种更好的机制来引导功能正确但不是最优的答案。我不是在宣扬你也这样做,而是在解释我为什么这样做。
【解决方案3】:

std::string 中有几种方法会有所帮助:

查找() rfind() find_first_of() find_last_of() substr()

【讨论】:

    【解决方案4】:

    看看string::find

    【讨论】:

    • 谢谢,只是真的忽略了它:s
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-12-04
    • 2012-04-01
    • 1970-01-01
    • 2023-03-14
    • 2010-10-15
    • 1970-01-01
    相关资源
    最近更新 更多