C++中字符串辅音计数(迭代和递归方法)
给定一个字符串,例如长度任意的str,任务是使用迭代和递归方法计算给定字符串中辅音的个数。
辅音是指不是元音的字母,即除了a、i、e、o、u之外的字母都被认为是辅音。所以在下面的程序中,我们需要找到字符串中除了这些字母以外的字母个数。
递归和迭代都重复执行指令集。递归是指函数中的语句重复调用自身。迭代是指循环重复执行,直到控制条件变为假。递归和迭代的主要区别在于,递归是一个过程,总是应用于函数,而迭代则应用于我们想要重复执行的指令集。
例如
Input − string str = “tutorials point” Output − count is 8
说明 − 在给定的字符串str中,共有8个辅音字母,它们是t、t、r、l、s、p、n和t。
Input − string str = “a e io u” Output − count is 0
说明 − 在给定的字符串str中,没有辅音字母,只有元音字母,所以个数为0。
迭代
下面程序中使用的方法如下
将字符串输入到变量中,例如str
使用length()函数计算给定字符串的长度,该函数将根据字符串中的字符数返回一个整数值
取一个临时变量来存储元素的计数。
从i=0开始循环,直到i小于字符串的长度
在循环内,检查IF str[i]是辅音,则将计数的值加1
返回计数
打印结果。
示例
// Iterative CPP program
#include <iostream>
using namespace std;
// Function to check for consonant
bool consonant(char ch){
// To handle lower case
ch = toupper(ch);
return !(ch == 'A' || ch == 'E' || ch == 'I' || ch == 'O' || ch == 'U') && ch >= 65 && ch <= 90;
}
//function to count consonant
int countconsonants(string s){
int result = 0;
for (int i = 0; i < s.length(); i++){
// To check is character is Consonant
if (consonant(s[i])){
++result;
}
}
return result;
}
// main function
int main(){
string s = "wx abc def";
cout <<"count is: "<<countconsonants(s);
return 0;
}输出
如果我们运行上面的代码,我们将得到以下输出
count is: 6
递归
下面程序中使用的方法如下
将字符串输入到变量中,例如str
使用length()函数计算给定字符串的长度,该函数将根据字符串中的字符数返回一个整数值
取一个临时变量来存储元素的计数。
创建一个递归函数,它将调用自身来计算字符串中的辅音。
检查IF大小为1,则返回str[0]。
然后,返回recursive_call_to_function为(str, size-1) + 检查字符是否为字符串(str[size-1])
示例
// Recursive CPP program
#include <iostream>
using namespace std;
// Function to check for consonant
bool consonant(char ch){
// To convert the lower case
ch = toupper(ch);
return !(ch == 'A' || ch == 'E' || ch == 'I' || ch == 'O' || ch == 'U') && ch >= 65 && ch <= 90;
}
// to count total number of consonants
int consonantcount(string str, int n){
if (n == 1){
return consonant(str[0]);
}
return consonantcount(str, n - 1) +
consonant(str[n-1]);
}
int main(){
string str = "wx abc def";
cout <<"count is: "<<consonantcount(str, str.length());
return 0;
}输出
如果我们运行上面的代码,我们将得到以下输出:
count is: 6
广告
数据结构
网络
关系数据库管理系统 (RDBMS)
操作系统
Java
iOS
HTML
CSS
Android
Python
C语言编程
C++
C#
MongoDB
MySQL
Javascript
PHP