gpt4 book ai didi

c++ - 使用 std::search 搜索 std::string 中的子字符串

转载 作者:行者123 更新时间:2023-12-03 06:57:11 25 4
gpt4 key购买 nike

我想使用 std::search 在字符串中搜索一些子字符串。

我尝试过这个:

std::string str = "the quick brown fox jumps over the lazy dog";
std::string substr[] = { "fox","dog","bear" };
auto it = std::search(str.begin(), str.end(), substr, substr + 3);
std::cout << "substring found at position :" << (it - str.begin()) << std::endl;

我有这些错误:

operator_surrogate_func:no mathing overloaded function found
Failed to specialize function template 'unknown type std::equal_to<void>::operator()

最佳答案

您有一组子字符串,因此需要单独比较每个子字符串,std::search 一次只能查找一个子字符串。

std::string str = "the quick brown fox jumps over the lazy dog";
std::string substr[] = { "fox","dog","bear" };

for(auto& sstr : substr){
auto it = std::search(str.begin(), str.end(), sstr.begin(), sstr.end());
std::cout << "substring found at position :" << (it - str.begin()) << std::endl;
}

请注意,如果未找到子字符串,则返回将是 .end() 迭代器,该迭代器指向字符串末尾之后的一个。

关于c++ - 使用 std::search 搜索 std::string 中的子字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63918492/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com