C++ 如何扫描用户的字符串输入以查找特定单词/单词?
C++ How can I scan the user's string input for a specific word/words?
#include <regex>
#include <string>
#include <iostream>
int main()
{
using namespace std;
string sentence;
cin >> sentence;
string word = "banana";
regex r("\b" + word + "\b");
smatch s;
if (regex_search(sentence, s, r)) {
cout << "success" << endl;
}
}
我得到了这个部分工作。我输入一个包含香蕉这个词的句子,问题来了。如果我输入香蕉作为句子中的第一个单词,它会检测到它(例如:香蕉等),但如果它不是第一个单词(例如:etc banana),它不会检测到它。有修复方法吗?是的,我正在使用命名空间,因为它让我的生活更轻松。
"我输入一个包含香蕉这个词的句子,问题来了。如果我输入香蕉作为句子中的第一个单词,它会检测到它(例如:香蕉等),但如果它不是第一个单词(例如:etc banana),它就不会检测到它。
您拥有的代码
std::cin >> sentence;
仅从输入中读取单个单词(直到下一个空格分隔符)。
"有解决办法吗?"
当然:如果你想从输入中得到一个完整的句子,你宁愿使用
std::getline(std::cin,sentence);
<小时 />另请注意,在如此简单的案例中使用std::regex()
太重了。如果您真的只想查找简单的序列,例如"banana"
而不是模式,std::string::find()
将很好地为您服务(成本要低得多)。
"是的,我正在使用命名空间,因为它让我的生活更轻松。"
最后,它不会让你的生活更轻松,而是恰恰相反。你只是容易与代码中的std
命名空间发生冲突(例如,考虑min()
、max()
、swap()
等的用户定义函数)。
相关文章:
- 在C++中查找(奇怪的)字符串中的单词
- 从文件中查找单词并替换到其他文件中
- 在文本中查找半个单词"ABBA"的问题
- C++:如何用split查找单词?Regex
- 查找包含指定单词的行(从文件中)
- 创建程序以从给定的.txt文件中查找文本,替换并计算单词
- 如何创建一个函数,该函数在文本中查找单词的匹配项,包括跳过
- 在带有C++的txt文件中查找最长的单词
- 从文件的一行中查找数字的平均值,避免使用第一个单词
- 在文件中查找 10 个最长的单词
- 如何使我的单词查找更清晰、更高效
- 视觉C++查找以 "ing" 结尾且少于或等于 10 个字符的单词
- 如何在没有分隔符的大文本文件中查找所有字典单词
- 我试图编写一个代码来查找一个单词是否是回文,但它不起作用。怎么了?
- 我如何在一串随机生成的字母I C 中查找一个单词
- 在 C++ 的句子中查找某个单词
- Qt使用QWebEngine查找单词功能
- 在向量中通过一个单词查找行
- 单词搜索难题:如何搜索一系列字母来查找单词
- C 查找并替换整个单词