【发布时间】:2022-01-01 11:49:44
【问题描述】:
我在多个论坛页面上查找了这一点,而不仅仅是堆栈溢出,并尝试了来自“检查字符串是否包含 C++ 中的字符串”帖子中的许多解决方案,以及其他解决方案,并尝试了几乎所有提出的解决方案,但没有其中似乎对我有用?我尝试了vector[i].find(std::string2) 和if(strstr(s1.c_str(),s2.c_str())) {cout << " S1 Contains S2";} 以及
std::string in = "Lorem ipsum dolor sit amet, consectetur adipiscing elit,"
" sed do eiusmod tempor incididunt ut labore et dolore magna aliqua";
std::string needle = "pisci";
auto it = std::search(in.begin(), in.end(),
std::boyer_moore_searcher(
needle.begin(), needle.end()));
if(it != in.end())
std::cout << "The string " << needle << " found at offset "
<< it - in.begin() << '\n';
else
std::cout << "The string " << needle << " not found\n";
还有更多解决方案(适用于我的代码),但没有一个有效。我唯一没有尝试过的是std::string.contain(),但那是因为 Visual Studios(2019 v.142 - 如果有帮助)[我正在使用的 C++ 标准语言,预览 - 最新 C++ 工作草案中的功能(std:c+ +latest),] 无法识别该函数 - 因为由于某种原因它无法识别更大的库。我什至尝试颠倒这两个变量,以防我将两者混合在一起,并在较小的变量中寻找较大的变量。
我是 C++ 的新手,所以我不擅长用这样的东西解决问题,所以如果你愿意,请原谅我的无知。
出现问题是因为我正在寻找的是向量吗?我创建了一个vector <string> names = {"Andrew John", "John Doe",};,其中包含名称,并试图“窥视”它并找到关键字,但同样,没有任何效果。在向量中查找某些东西时,是否有一个特殊的函数可以调用?任何帮助将不胜感激!
【问题讨论】:
-
你将如何用你的眼睛、一张写在纸上的字符串列表和一支铅笔来标记找到的字符串?一个程序将非常相似。
标签: c++ visual-c++