在C ++中计算字符串中的辅音(迭代和递归方法)

我们给了一个具有任意长度str的字符串,任务是使用迭代方法和递归方法来计算给定字符串中辅音的数量。

辅音是不是元音的那些字母,即除a,i,e,o,u以外的字母都被视为辅音。因此,在下面的程序中,我们需要查找除字符串中的字母以外的其他字母的计数。

递归和迭代都重复执行指令集。递归是指函数中的语句重复调用自身时的情况。迭代是循环重复执行直到控制条件变为假。递归和迭代之间的主要区别在于,递归是一个过程,始终应用于函数,而迭代则应用于我们要重复执行的指令集。

例如

Input − string str = “(niaoge.com)”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中,没有辅音可用,而是只有元音,因此count为0。

迭代

以下程序中使用的方法如下

  • 在一个变量中输入字符串,比如说str

  • 使用该length()函数计算给定字符串的长度,该函数将根据字符串中的字符数返回一个整数值

  • 取一个临时变量来存储元素的数量。

  • 从i开始循环到0,直到我小于字符串的长度

  • 在循环内部,检查IF str [i]是否辅音,然后将count的值增加1

  • 返回计数

  • 打印结果。

示例

// Iterative CPP program
#include <iostream>
using namespace std;
//检查辅音的功能
bool consonant(char ch){
   //处理小写字母
   ch = toupper(ch);
   return !(ch == 'A' || ch == 'E' || ch == 'I' || ch == 'O' || ch == 'U') && ch >= 65 && ch <= 90;
}
//计数辅音的功能
int countconsonants(string s){
   int result = 0;
   for (int i = 0; i < s.length(); i++){
      //要检查字符是否为辅音
      if (consonant(s[i])){
         ++result;
      }
   }
   return result;
}
//主要功能
int main(){
   string s = "wx abc def";
   cout <<"count is: "<<countconsonants(s);
   return 0;
}

输出结果

如果运行上面的代码,我们将获得以下输出

count is: 6

递归的

以下程序中使用的方法如下

  • 在一个变量中输入字符串,比如说str

  • 使用该length()函数计算给定字符串的长度,该函数将根据字符串中的字符数返回一个整数值

  • 取一个临时变量来存储元素的数量。

  • 创建一个递归函数,该函数将调用自身以计算字符串中的辅音

  • 检查IF大小是否为1,然后返回str [0]。

  • 然后,以(str,size-1)返回recursive_call_to_function +检查字符是否为字符串(str [size-1])

示例

// Recursive CPP program
#include <iostream>
using namespace std;
//检查辅音的功能
bool consonant(char ch){
   //转换小写
   ch = toupper(ch);
   return !(ch == 'A' || ch == 'E' || ch == 'I' || ch == 'O' || ch == 'U') && ch >= 65 && ch <= 90;
}
//计算辅音总数
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