在anotherstring中查找字符串的所有实例

时间:2015-05-13 01:58:44

标签: c++ string loops find

下面我有一堆比较两个字符串的代码。

if (long.find(short) != string::npos) {
        cout << "FOUND";
}

这只告诉我它是否在长字符串中找到短字符串。但是我怎样才能找到所有实例并告诉用户字符串的这些实例显示在哪里?

我认为可能会让这个循环但我无法实现它。

3 个答案:

答案 0 :(得分:1)

您可以执行类似

的操作
slideToggle

附注:请勿使用#include <iostream> #include <string> int main() { std::string test = "we are searching for searching here"; std::string str = "searching"; std::string::size_type start = test.find(str); // find the first instance while(start != std::string::npos) // repeat for the rest { std::cout << "Found on pos: " << start << std::endl; start = test.find(str, start + 1); } } long作为字符串名称,因为它们是C ++保留的关键字。

答案 1 :(得分:0)

find的一个重载允许您告诉它从哪里开始查找。因此,在找到一个事件后,再次使用之前的位置加一个呼叫find()

答案 2 :(得分:0)

您可以在这里进行示例实施:

{{1}}

输出:

ABCABCABC

ABCABC

ABC