C++ 字符串递归子叉
C++ String Recursion substr
我正在尝试递归计算sub在str中出现的次数,而子字符串没有重叠。我正在尝试做的是str.find(sub)
,如果它count++
存在,然后返回计数 + 调用函数但没有找到的位置:str.substr(str.find(sub) + sub.length())
Here are some examples:
subCcount("catcowcat", "cat") returns 2
subCount("catcowcat", "cow") returns 1
subCount("catcowcat", "dog") returns 0
我尝试编写的代码:
int count = 0;
int subCount(const std::string& str, const std::string& sub)
{
int len = str.length();
if(len == 0)
{
return 0;
}
else
{
if(str.find(sub) != string::npos)
{
count++;
return count + subCount(str.substr(str.find(sub) + sub.length()), sub);
}
}
}
测试代码:
X 子计数("catcowcat", "cat"):预期 [2] 但已找到 [3]
X 子计数("catcowcat", "cow"):预期 [1] 但已找到 [3]
'+ 子计数("猫牛猫", "狗")
X 子计数("cacatcowcat", "cat"): 预期 [2] 但已找到 [9]
在寻求帮助之前,您绝对应该使用调试器并检查基本错误。
- 在该函数的开头将计数初始化为零。
- 添加一个 else 语句,返回 if(str.find(sub) != string::npos 的计数值。
我希望这能解决你的问题。
相关文章:
- 字符串化递归的"std::vector<std::vector<...>>"而不使用部分模板函数专用化
- 递归形成字符串中所有数字字符的中间和?
- 我已经建立了递归关系,它找到了两个字符串之间最长的连续公共字符串,我怎么能跳过其中一个字符串中的一个字符
- 我遇到了这个代码片段,不明白. 它递归检查 C++ 字符串中是否存在大写字符
- 递归二进制搜索与字符串数组
- 我在 C++ 中创建了一个函数来递归反转字符串,但是之后如何使功能打印一个 endl?
- C++:递归地将字符串中一个字母的所有实例替换为另一个字母
- 如何使用递归打印最长公共子序列中涉及的字符串?
- 十进制到八进制递归C++.以标准::字符串格式输出
- c 字符串 c++ 中 strlen 的递归版本
- 字符串的递归二进制搜索-C++
- 在c++中使用递归从字符串中删除所有辅音
- 使用递归函数 (c++) 将长字符串转换为整数时输出错误
- 如何将从第 2 个字符开始的字符串作为函数中的参数传递以进行递归,并约束数据 tiee 是函数中的字符串?
- 有没有一种递归的方式来制作这个字符串数组?
- 编写递归字符串函数
- 递归字符串交换
- 使用递归C++字符串到整数
- 大型递归字符串操作上的分段错误
- 递归字符串转换