字符串和递归
Strings and Recursion
我在网上浏览了一下,发现有人贴了一些作业问题,我想我也想试一试。它处理一个类和一个叫做派生类的东西,我没有兴趣尝试,(主要是因为我不知道那是什么),但我看到了这些要求,并想知道它们是否都可以用递归来完成,使用像void或int函数。这是我得到的:
一个名为strLength的方法,返回字符串的长度。
一个叫做lowerCase的方法,返回小写字符的个数。
一个叫做upperCase的方法,返回大写字符的数目。
一个名为vowelCnt的方法,用于返回字符串中元音的个数。
charSum方法,返回字符串中所有字符的和。
我想我可以做最后一个:
int charSum(string x, int i)
{
if(x.size() == i)
return (0 + x[i]);
else
return charSum(x, i + 1) + x[i];
}
虽然我不太确定是否使用实际的字符来执行,但为了练习和查看如何使用递归,我不太担心它是字符还是字符串,只要它能工作就行了。
检查一下,我发现了这个,(注意,这个不是我想出来的,是一个叫eazar001的人想出来的…):
int countString(char sample[], int i, int total)
{
if(sample[i] == 0)
{
return total;
}
else
{
return countString(sample, i+1, ++total);
}
}
有没有人知道如何做列表上的其他的,或者有什么他们可以指向我,可以告诉我如何扫描字符串来寻找这些东西,(特别是大写和小写的东西,我不知道有一个区别)。感谢任何人愿意陪我走过这些东西,因为我试图自学!
int strlen1(char * s){
if(*s==' ') return 0;
else return strlen1(++s)+1;
}
int lowercase_count(char *s){
if(*s==' ') return 0;
else if(*s>=97 && *s<=97+26) return lowercase_count(++s)+1;
else return lowercase_count(++s);
}
int uppercase_count(char *s){
if(*s==' ') return 0;
else if(*s>=65 && *s<=65+26) return uppercase_count(++s)+1;
else return uppercase_count(++s);
}
int isVowel(char c){
char v[10]={'a','e','i','o','u','A','E','I','O','U'};
int i;
for(i=0;i<10;i++)
if(v[i]==c) return 1;
return 0;
}
int vowel_count(char *s){
if(*s==' ') return 0;
else if(isVowel(*s)) return vowel_count(++s)+1;
else return vowel_count(++s);
}
相关文章:
- 字符串化递归的"std::vector<std::vector<...>>"而不使用部分模板函数专用化
- 递归形成字符串中所有数字字符的中间和?
- 我已经建立了递归关系,它找到了两个字符串之间最长的连续公共字符串,我怎么能跳过其中一个字符串中的一个字符
- 我遇到了这个代码片段,不明白. 它递归检查 C++ 字符串中是否存在大写字符
- 递归二进制搜索与字符串数组
- 我在 C++ 中创建了一个函数来递归反转字符串,但是之后如何使功能打印一个 endl?
- C++:递归地将字符串中一个字母的所有实例替换为另一个字母
- 如何使用递归打印最长公共子序列中涉及的字符串?
- 十进制到八进制递归C++.以标准::字符串格式输出
- c 字符串 c++ 中 strlen 的递归版本
- 字符串的递归二进制搜索-C++
- 在c++中使用递归从字符串中删除所有辅音
- 使用递归函数 (c++) 将长字符串转换为整数时输出错误
- 如何将从第 2 个字符开始的字符串作为函数中的参数传递以进行递归,并约束数据 tiee 是函数中的字符串?
- 有没有一种递归的方式来制作这个字符串数组?
- 编写递归字符串函数
- 递归字符串交换
- 使用递归C++字符串到整数
- 大型递归字符串操作上的分段错误
- 递归字符串转换