c++如何统计字符串中的子字符串的数量
时间: 2024-10-12 14:06:18 浏览: 103
在C++中,如果你想要统计一个字符串中特定子字符串出现的次数,你可以使用`std::string`的`find()`函数配合循环来实现。以下是一个简单的示例:
```cpp
#include <iostream>
#include <string>
int count_substrings(const std::string& main_str, const std::string& substr) {
int count = 0;
size_t pos = main_str.find(substr);
while (pos != std::string::npos) {
// 如果找到了子串,增加计数
count++;
// 更新查找位置到下一个可能出现的位置
pos = main_str.find(substr, pos + 1);
}
return count;
}
int main() {
std::string str = "Hello, world! Hello again!";
std::string sub_str = "Hello";
int occurrences = count_substrings(str, sub_str);
std::cout << "Substring '" << sub_str << "' occurs " << occurrences << " times in the string.\n";
return 0;
}
```
在这个例子中,`count_substrings`函数会返回`substr`在`main_str`中出现的次数。如果`find()`找不到子串,它将返回`std::string::npos`,所以在while循环里我们检查这个值是否等于`npos`。
阅读全文