c++ - 查找给定字符串中所有子字符串的出现

标签 c++ string

我使用一个简单的字符串函数 strstr 来查找某个字符串在某些文本中的第一次出现。我使用以下代码来计算文本中唯一单词的数量。

for (int i = 0; i < 24; i++) 
{
    if (strstr(text, ops[i])) 
    {
        op++;
    }
}

但是我想找出程序中所有子串的出现。我该怎么做?

最佳答案

strstr()是C风格的字符串,如果你真的用C++,std::string和它的成员函数会方便很多。

#include <string>
#include <iostream>

using namespace std;

int main()
{
    string s("hello hello");
    int count = 0;
    size_t nPos = s.find("hello", 0); // first occurrence
    while(nPos != string::npos)
    {
        count++;
        nPos = s.find("hello", nPos + 1);
    }

    cout << count;
};

关于c++ - 查找给定字符串中所有子字符串的出现,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22315738/

相关文章:

c++ - 进入函数,但不进入 VS2017 的参数评估

c++ - 放弃检查列表是否为空

string - 如何在 OpenGL 中的 3d 场景上打印字符串

string - 在 Prolog 中计算字符串

c++ - 在基于 DirectX 的应用程序中使用软件输入面板

c++ - 是否有办法使用Booth算法捕获二进制乘法期间的上溢/下溢?

c++ - 我可以在函数头中包含 cppcheck 抑制吗?

java - 检查字符串中是否存在重复字符的最有效方法是什么?

php - 使用查询从数据库中获取所有 id 的字符串

python - 将包含转义字符的字符串转换为字典