Skip to content
Related Articles

Related Articles

Improve Article
Save Article
Like Article

Count consonants in a string (Iterative and recursive methods)

  • Difficulty Level : Easy
  • Last Updated : 18 Nov, 2021

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 : 

Hey! Looking for some great resources suitable for young ones? You've come to the right place. Check out our self-paced courses designed for students of grades I-XII

Start with topics like Python, HTML, ML, and learn to make some games and apps all with the help of our expertly designed content! So students worry no more, because GeeksforGeeks School is now here!

 



Input : abc de
Output : 3
There are three consonants b, c and d.

Input : geeksforgeeks portal
Output : 12

 1. Iterative Method 

C++




// Iterative CPP program to count total number
// of consonants
#include <iostream>
using namespace std;
 
// Function to check for consonant
bool 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 code
int main()
{
    string str = "abc de";
    cout << totalConsonants(str);
    return 0;
}

Java




// 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.

Python3




# Iterative Python3 program to count
# total number of consonants
 
# Function to check for consonant
def 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 code
string = "abc de"
print(totalConsonants(string))
 
 
# This code id contributed by Ansu Kumari.

C#




// 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




<?php
// Iterative PHP program to count total number
// of consonants
  
// Function to check for consonant
function 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.
?>

Javascript




<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++




// Recursive CPP program to count total number
// of consonants
#include <iostream>
using namespace std;
 
// Function to check for consonant
bool 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-1
int totalConsonants(string str, int n)
{
    if (n == 1)
        return isConsonant(str[0]);
 
    return totalConsonants(str, n - 1) +
           isConsonant(str[n-1]);
}
 
// Driver code
int main()
{
    string str = "abc de";
    cout << totalConsonants(str, str.length());
    return 0;
}

Java




// Recursive Java program to count
// total number of consonants
import java.util.*;
import java.lang.*;
 
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')== false && ch >= 65 && ch <= 90;
}
 
// to count total number
// of consonants from  0 to n-1
static 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 code
public static void main(String args[])
{
    String str = "abc de";
    System.out.println(totalConsonants(str, str.length()));
}
}
 
// This code is contributed by
// Surendra_Gangwar

Python3




# Recursive Python3 program to count
# total number of consonants
 
# Function to check for consonant
def 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-1
def totalConsonants(string, n):
     
    if n == 1:
        return isConsonant(string[0])
 
    return totalConsonants(string, n - 1) + isConsonant(string[n-1])
 
 
# Driver code
string = "abc de"
print(totalConsonants(string, len(string)))
 
 
# This code is contributed by Ansu Kuamri.

C#




// Recursive C# program to count
// total number of consonants
using System;
     
class GFG
{
 
// Function to check for consonant
static 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-1
static 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 code
public static void Main(String []args)
{
    String str = "abc de";
    Console.WriteLine(totalConsonants(str, str.Length));
}
}
 
// This code contributed by Rajput-Ji

Javascript




<script>
 
// Recursive Javascript program to
// count total number of consonants
 
// Function to check for consonant
function 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-1
function totalConsonants(str, n)
{
    if (n == 1)
        return isConsonant(str[0]);
 
    return totalConsonants(str, n - 1) +
                isConsonant(str[n - 1]);
}
 
// Driver code
var 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:
 

 

 




My Personal Notes arrow_drop_up
Recommended Articles
Page :

Start Your Coding Journey Now!