Count consonants in a string (Iterative and recursive methods)

15 Jul, 2022
Given a string, count total number of consonants in it. A consonant is a English alphabet character that is not vowel (a, e, i, o and u). Examples of constants are b, c, d, f, g, ..
Examples : 
Chapters
descriptions off, selected
captions settings, opens captions settings dialog
captions off, selected
English
This is a modal window.
Beginning of dialog window. Escape will cancel and close the window.
End of dialog window.
Input : abc de
Output : 3
There are three consonants b, c and d.

Input : geeksforgeeks portal
Output : 12
 1. Iterative Method 
C++
Java
Python3
C#
PHP
Javascript
// Iterative CPP program to count total number// of consonants #include <iostream>using namespace std;  // Function to check for consonantbool isConsonant(char ch){    // To handle lower case    ch = toupper(ch);      return !(ch == 'A' || ch == 'E' ||             ch == 'I' || ch == 'O' ||             ch == 'U') && ch >= 65 && ch <= 90;}  int totalConsonants(string str){    int count = 0;    for (int i = 0; i < str.length(); i++)           // To check is character is Consonant        if (isConsonant(str[i]))            ++count;    return count;}  // Driver codeint main(){    string str = "abc de";    cout << totalConsonants(str);    return 0;}
// Iterative Java program// to count total number// of consonants   import java.io.*;  class GFG {      // Function to check for consonant    static boolean isConsonant(char ch)    {        // To handle lower case        ch = Character.toUpperCase(ch);               return !(ch == 'A' || ch == 'E' ||                 ch == 'I' || ch == 'O' ||                 ch == 'U') && ch >= 65 && ch <= 90;    }       static int totalConsonants(String str)    {        int count = 0;        for (int i = 0; i < str.length(); i++)                    // To check is character is Consonant            if (isConsonant(str.charAt(i)))                ++count;        return count;    }          // Driver code    public static void main(String args[])    {        String str = "abc de";        System.out.println( totalConsonants(str));    }}  // This code is contributed by Nikita Tiwari.
# Iterative Python3 program to count # total number of consonants   # Function to check for consonantdef isConsonant(ch):          # To handle lower case    ch = ch.upper()      return not (ch == 'A' or ch == 'E' or                 ch == 'I' or ch == 'O' or                 ch == 'U') and ord(ch) >= 65 and ord(ch) <= 90  def totalConsonants(string):          count = 0          for i in range(len(string)):          # To check is character is Consonant        if (isConsonant(string[i])):            count += 1                  return count  # Driver codestring = "abc de"print(totalConsonants(string))    # This code id contributed by Ansu Kumari.
// Iterative C# program to count // total number of consonants using System;  class GFG {      // Function to check for consonant    static bool isConsonant(char ch)    {        // To handle lower case        ch = Char.ToUpper(ch);              return !(ch == 'A' || ch == 'E' ||                  ch == 'I' || ch == 'O' ||                  ch == 'U') && ch >= 65 && ch <= 90;    }      static int totalConsonants(String str)    {        int count = 0;        for (int i = 0; i < str.Length; i++)                   // To check is character is Consonant            if (isConsonant(str[i]))                ++count;        return count;    }          // Driver code    public static void Main()    {        String str = "abc de";        Console.Write( totalConsonants(str));    }}  // This code is contributed by nitin mittal.
<?php // Iterative PHP program to count total number// of consonants    // Function to check for consonantfunction isConsonant($ch){    // To handle lower case    $ch = strtoupper($ch);       return !($ch == 'A' || $ch == 'E' ||             $ch == 'I' || $ch == 'O' ||             $ch == 'U') && ord($ch) >= 65 && ord($ch) <= 90;}   function totalConsonants($str){    $count = 0;    for ($i = 0; $i < strlen($str); $i++)            // To check is character is Consonant        if (isConsonant($str[$i]))            ++$count;    return $count;}   // Driver code  $str = "abc de";echo totalConsonants($str);return 0; // This code is contributed by Ita_c.?>
<script>      // Iterative JavaScript program to count total number      // of consonants        // Function to check for consonant      function isConsonant(ch)      {        // To handle lower case        ch = ch.toUpperCase();          console.log(ch);          return (          !(ch == "A" || ch == "E" || ch == "I" || ch == "O" || ch == "U") &&          ch.match(/[A-Z]/i)        );      }        function totalConsonants(str) {        var count = 0;        for (var i = 0; i < str.length; i++)          // To check is character is Consonant          if (isConsonant(str[i])) ++count;        return count;      }        // Driver code      var str = "abc de";      document.write(totalConsonants(str));              // This code is contributed by rdtank.    </script>
Output: 
3
Time Complexity: O(n), where n is the length of the string
Auxiliary Space: O(1)
 2. Recursive Method 
C++
Java
Python3
C#
Javascript
// Recursive CPP program to count total number// of consonants #include <iostream>using namespace std;  // Function to check for consonantbool isConsonant(char ch){    // To handle 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 from // 0 to n-1int totalConsonants(string str, int n){    if (n == 1)        return isConsonant(str[0]);      return totalConsonants(str, n - 1) +            isConsonant(str[n-1]);}  // Driver codeint main(){    string str = "abc de";    cout << totalConsonants(str, str.length());    return 0;}
// Recursive Java program to count // total number of consonants import java.util.*;import java.lang.*;  class GFG{  // Function to check for consonantstatic boolean isConsonant(char ch){    // To handle lower case    ch = Character.toUpperCase(ch);      return (ch == 'A' || ch == 'E' ||             ch == 'I' || ch == 'O' ||             ch == 'U')== false && ch >= 65 && ch <= 90;}  // to count total number // of consonants from  0 to n-1static int totalConsonants(String str, int n){    if (n == 1)    {        if(isConsonant(str.charAt(0)))            return 1;        else            return 0;    }          if(isConsonant(str.charAt(n - 1)))        return totalConsonants(str, n - 1) + 1;    else        return totalConsonants(str, n - 1);}  // Driver codepublic static void main(String args[]){    String str = "abc de";    System.out.println(totalConsonants(str, str.length()));}}  // This code is contributed by// Surendra_Gangwar
# Recursive Python3 program to count # total number of consonants   # Function to check for consonantdef isConsonant(ch):          # To handle lower case    ch = ch.upper()      return not (ch == 'A' or ch == 'E' or                 ch == 'I' or ch == 'O' or                 ch == 'U') and ord(ch) >= 65 and ord(ch) <= 90  # To count total number of  # consonants from 0 to n-1def totalConsonants(string, n):          if n == 1:        return isConsonant(string[0])      return totalConsonants(string, n - 1) + isConsonant(string[n-1])    # Driver codestring = "abc de"print(totalConsonants(string, len(string)))    # This code is contributed by Ansu Kuamri.
// Recursive C# program to count // total number of consonants using System;       class GFG{  // Function to check for consonantstatic Boolean isConsonant(char ch){    // To handle lower case    ch = char.ToUpper(ch);      return (ch == 'A' || ch == 'E' ||             ch == 'I' || ch == 'O' ||             ch == 'U') == false &&             ch >= 65 && ch <= 90;}  // to count total number // of consonants from 0 to n-1static int totalConsonants(String str, int n){    if (n == 1)    {        if(isConsonant(str[0]))            return 1;        else            return 0;    }          if(isConsonant(str[n - 1]))        return totalConsonants(str, n - 1) + 1;    else        return totalConsonants(str, n - 1);}  // Driver codepublic static void Main(String []args){    String str = "abc de";    Console.WriteLine(totalConsonants(str, str.Length));}}  // This code contributed by Rajput-Ji
<script>  // Recursive Javascript program to // count total number of consonants   // Function to check for consonantfunction isConsonant(ch){          // To handle lower case    ch = ch.toUpperCase();          return (!(ch == 'A' || ch == 'E' ||              ch == 'I' || ch == 'O' ||              ch == 'U') && ch.charCodeAt(0) >= 65 &&                             ch.charCodeAt(0) <= 90) ;}  // To count total number of consonants from // 0 to n-1function totalConsonants(str, n){    if (n == 1)        return isConsonant(str[0]);      return totalConsonants(str, n - 1) +                 isConsonant(str[n - 1]);}  // Driver codevar str = "abc de";  document.write(totalConsonants(str,str.length));  // This code is contributed by jana_sayantan  </script>
Output : 
3
Time Complexity: O(n), where n is the length of the string
Auxiliary Space: O(1)
Illustration of recursive method: 
 
nitin mittal
ukasp
SURENDRA_GANGWAR
Rajput-Ji
rdtank
jana_sayantan
samim2000
vowel-consonant
Recursion
School Programming
Strings
Strings
Recursion
Writing code in comment?
Please use ide.geeksforgeeks.org,
generate link and share the link here.