c++ 计算字符串中子字符串出现的次数
作者:野牛程序员:2024-06-17 11:20:02 C++阅读 2669
c++ 计算字符串中子字符串出现的次数
在C++中,可以通过多种方法计算字符串中某个子字符串出现的次数。以下是使用C++实现的一种方法,利用std::string
类中的find
方法来完成这一任务。
#include <iostream> #include <string> int countOccurrences(const std::string& str, const std::string& subStr) { if (subStr.empty()) return 0; // 防止子字符串为空 int count = 0; size_t pos = str.find(subStr); while (pos != std::string::npos) { ++count; pos = str.find(subStr, pos + subStr.length()); } return count; } int main() { std::string str = "ababcabcab"; std::string subStr = "abc"; int occurrences = countOccurrences(str, subStr); std::cout << "子字符串出现的次数: " << occurrences << std::endl; return 0; }
在上面的代码中,定义了一个名为countOccurrences
的函数,该函数接收两个字符串参数:str
和subStr
。函数通过循环使用std::string::find
方法查找subStr
在str
中的位置,并在每次找到后将计数器增加,同时将搜索位置更新为上次找到的位置之后。循环会一直持续到找不到subStr
为止。
主要步骤:
检查
subStr
是否为空,如果为空则直接返回0。初始化计数器
count
为0,并使用std::string::find
方法从头开始查找subStr
。在找到
subStr
时,增加计数器,并更新查找位置为subStr
出现的位置之后。循环重复步骤3,直到找不到
subStr
为止。
这样就可以统计出字符串中子字符串出现的次数。
野牛程序员教少儿编程与信息学奥赛-微信|电话:15892516892