【问题标题】:C++ check if string is beginning of an english wordC ++检查字符串是否是英文单词的开头
【发布时间】:2015-04-21 20:15:10
【问题描述】:

我找到了几个关于如何检查字符串是否是完整单词的答案,但没有找到关于如何检查字符串是否是单词第一部分的答案。

例如,我需要一个函数,它会为“c”、“b”、“cong”(恭喜、一致等)或“exa”(例如、检查等)返回 true,但返回 false用于“congx”、“qt”或其他乱码。

我想有很多方法可以解决这个问题。如果您能提供一个粗略的策略大纲,我将不胜感激。 我正在尝试制作一个 Boggle 求解器。 谢谢!

【问题讨论】:

  • 正则表达式以 \b 开头但不是结尾?

标签: c++ boggle


【解决方案1】:

std::string part包含std::string word中吗?

if(word.find(part) != std::string::npos)
{
    // part is in word somethere
}

std::string part 是否位于std::string word开头

if(word.find(part) == 0)
{
    // word starts with part
}

作为解释,std::string::find() 返回找到的位置。所以0 表示一开始就被发现了。值std::string::npos 是一个特殊值,表示根本没有找到任何东西。

【讨论】:

  • 对于字典中的每个字词?
  • @Lol4t0 据我所知,这些功能适用于字典中的每个单词,但我必须承认我没有检查所有这些。
  • 谢谢,也许我可以聪明一点,这样就不会花很长时间了。
  • @Lol4t0 嗯现在我理解你。也许我误解了这个问题?我认为这是关于比较字符串而不是搜索字典的策略。
  • @ElliottShugerman 对于这样的事情,我会求助于像GNU Aspell 这样的专用字典库。
猜你喜欢
  • 1970-01-01
  • 2016-12-05
  • 1970-01-01
  • 1970-01-01
  • 2022-06-17
  • 2014-04-20
  • 2022-06-16
  • 1970-01-01
  • 2013-03-09
相关资源
最近更新 更多