c++如何判断一个字符串在另一个字符串中出现的次数
时间: 2024-10-03 10:01:34 浏览: 20
在C++中,你可以通过多种方式来计算一个字符串在另一个字符串中出现的次数。以下是几种常见的方法:
1. **遍历法**:
使用循环和标准库函数`find`来查找目标字符串。每次找到就计数,直到找不到为止。
```cpp
#include <string>
size_t countOccurrence(const std::string& mainStr, const std::string& substr) {
size_t count = 0;
size_t pos = mainStr.find(substr);
while (pos != std::string::npos) {
count++;
pos = mainStr.find(substr, pos + 1); // 从上次找到的位置之后继续搜索
}
return count;
}
```
2. **STL算法**:
C++17引入了`std::count`和`std::search`等算法,可以简化这个过程。
```cpp
#include <algorithm>
size_t countOccurrence(const std::string& mainStr, const std::string& substr) {
return std::count(mainStr.begin(), mainStr.end(), substr[0]) / substr.length();
}
```
注意:上述第二种方法假设目标字符串的第一个字符不会出现在其他地方,如果有可能的话,还是推荐第一种更精确的方法。