c++ - 使用迭代器在字符串中查找子字符串

标签 c++ string iterator find

我有一个由两个迭代器(startend)定义的子字符串。我需要检查此子字符串是否存在于另一个字符串中。

是否有标准库算法或字符串成员我可以使用或改编来执行此操作而无需为此目的创建一个全新的字符串对象 (std::string(start, end))?

例如

struct Substring
{
    std::string::const_iterator start, end;
};

auto found = std::contains(whole.begin(), whole.end(), substring.start, substring.end); // ???

最佳答案

std::search

bool found = 
    std::search(hay.begin(), hay.end(), needle.begin(), needle.end()) != hay.end();

关于c++ - 使用迭代器在字符串中查找子字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32866509/

相关文章:

c++ - 命令提示符 "runas user:<admin-user> <command>"未正确执行

c++ - 两个八进制数直接相加,无需转换为十进制

c++ - 编码一个句子

java - 反转字符串变量

python - 使用python解码tcp数据包

c++ - 通过迭代器更改对象

java - 迭代器不打印明确存在的项目是 LinkedList

C++ 线程池 : should work be able to add more work to the work-queue

c++ - 没有匹配的函数来调用

python - 从关闭的文件中返回生成器 | csv 阅读器不返回生成器作为 openpyxl?