Skip to content
Related Articles

Related Articles

Improve Article
Save Article
Like Article

Replace consonants with next immediate consonants alphabetically in a String

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

Given a string which contains lowercase English alphabets. The task is to replace each consonant with the next immediate consonant that comes in English alphabets.
Let’s say we have to replace character a  , it will be replaced by b  . Another example, let’s say we have to replace character d  , the next immediate consonant is f  , hence d  will be replaced by f  .
Note: If the character is ‘z’, then look circularly in English alphabets for the next consonant, i.e. replace it with ‘b’.
Examples
 

Input : str = "geeksforgeeks"
Output : heeltgosheelt

Input : str = "gfg"
Output : hgh

 

Approach: 
 

  • Iterate the string elements from left to right.
  • It the string element is consonant, then check the next immediate alphabet of this element.
  • If the next immediate alphabet is a consonant, then replace it with the this alphabet. If it is a vowel, then replace the string element with 2nd immediate alphabet as there are no consecutive vowels in English alphabets.

Below is the implementation of the above program: 
 

C++




// C++ program of above approach
#include <bits/stdc++.h>
using namespace std;
 
// Function to check if a character is
// vowel or not
bool isVowel(char ch)
{
    if (ch != 'a' && ch != 'e' && ch != 'i'
                     && ch != 'o' && ch != 'u')
        return false;
 
    return true;
}
 
// Function that replaces consonant with
// next immediate consonant alphabetically
string replaceConsonants(string s)
{
    // Start traversing the string
    for (int i = 0; i < s.length(); i++) {
 
        if (!isVowel(s[i])) {
 
            // if character is z,
            // than replace it with character b
            if (s[i] == 'z')
                s[i] = 'b';
 
            // if the alphabet is not z
            else {
 
                // replace the element with
                // next immediate alphabet
                s[i] = (char)(s[i] + 1);
 
                // if next immediate alphabet is vowel,
                // than take next 2nd immediate alphabet
                // (since no two vowels occurs consecutively
                // in alphabets) hence no further
                // checking is required
                if (isVowel(s[i]))
                    s[i] = (char)(s[i] + 1);
            }
        }
    }
 
    return s;
}
 
// Driver code
int main()
{
    string s = "geeksforgeeks";
 
    cout << replaceConsonants(s);
 
    return 0;
}

Java




// Java program of above approach
class GFG
{
 
    // Function to check if a character is
    // vowel or not
    static boolean isVowel(char ch)
    {
        if (ch != 'a' && ch != 'e' && ch != 'i'
                && ch != 'o' && ch != 'u')
        {
            return false;
        }
        return true;
    }
 
    // Function that replaces consonant with
    // next immediate consonant alphabetically
    static String replaceConsonants(char[] s)
    {
        // Start traversing the string
        for (int i = 0; i < s.length; i++)
        {
            if (!isVowel(s[i]))
            {
 
                // if character is z,
                // than replace it with character b
                if (s[i] == 'z')
                {
                    s[i] = 'b';
                }
                 
                // if the alphabet is not z
                else
                {
 
                    // replace the element with
                    // next immediate alphabet
                    s[i] = (char) (s[i] + 1);
 
                    // if next immediate alphabet is vowel,
                    // than take next 2nd immediate alphabet
                    // (since no two vowels occurs consecutively
                    // in alphabets) hence no further
                    // checking is required
                    if (isVowel(s[i]))
                    {
                        s[i] = (char) (s[i] + 1);
                    }
                }
            }
        }
        return String.valueOf(s);
    }
 
    // Driver code
    public static void main(String[] args)
    {
        String s = "geeksforgeeks";
        System.out.println(replaceConsonants(s.toCharArray()));
    }
}
 
// This code is contributed by Rajput-Ji

Python3




# Python3 program of above approach
 
# Function to check if a character is
# vowel or not
def isVowel(ch):
 
    if (ch != 'a' and ch != 'e' and
        ch != 'i' and ch != 'o' and
        ch != 'u'):
        return False;
 
    return True;
 
# Function that replaces consonant with
# next immediate consonant alphabetically
def replaceConsonants(s):
     
    # Start traversing the string
    for i in range(len(s)):
        if (isVowel(s[i])==False):
 
            # if character is z,
            # than replace it with character b
            if (s[i] == 'z'):
                s[i] = 'b';
 
            # if the alphabet is not z
            else:
 
                # replace the element with
                # next immediate alphabet
                s[i] = chr(ord(s[i]) + 1);
 
                # if next immediate alphabet is vowel,
                # than take next 2nd immediate alphabet
                # (since no two vowels occurs consecutively
                # in alphabets) hence no further
                # checking is required
                if (isVowel(s[i])==True):
                    s[i] = chr(ord(s[i]) + 1);
 
    return ''.join(s);
 
# Driver code
s = "geeksforgeeks";
 
print(replaceConsonants(list(s)));
 
# This code is contributed by mits

C#




// C# program of above approach
using System;
 
class GFG
{
 
    // Function to check if a character is
    // vowel or not
    static bool isVowel(char ch)
    {
        if (ch != 'a' && ch != 'e' && ch != 'i'
                && ch != 'o' && ch != 'u')
        {
            return false;
        }
        return true;
    }
 
    // Function that replaces consonant with
    // next immediate consonant alphabetically
    static String replaceConsonants(char[] s)
    {
         
        // Start traversing the string
        for (int i = 0; i < s.Length; i++)
        {
            if (!isVowel(s[i]))
            {
 
                // if character is z,
                // than replace it with character b
                if (s[i] == 'z')
                {
                    s[i] = 'b';
                }
                 
                // if the alphabet is not z
                else
                {
 
                    // replace the element with
                    // next immediate alphabet
                    s[i] = (char) (s[i] + 1);
 
                    // if next immediate alphabet is vowel,
                    // than take next 2nd immediate alphabet
                    // (since no two vowels occurs consecutively
                    // in alphabets) hence no further
                    // checking is required
                    if (isVowel(s[i]))
                    {
                        s[i] = (char) (s[i] + 1);
                    }
                }
            }
        }
        return String.Join("",s);
    }
 
    // Driver code
    public static void Main(String[] args)
    {
        String s = "geeksforgeeks";
        Console.WriteLine(replaceConsonants
                            (s.ToCharArray()));
    }
}
 
// This code is contributed by
// 29AjayKumar

PHP




<?php
// PHP program of above approach
 
// Function to check if a character is
// vowel or not
function isVowel($ch)
{
    if ($ch != 'a' && $ch != 'e' &&
        $ch != 'i' && $ch != 'o' &&
        $ch != 'u')
        return false;
 
    return true;
}
 
// Function that replaces consonant with
// next immediate consonant alphabetically
function replaceConsonants($s)
{
    // Start traversing the string
    for ($i = 0; $i < strlen($s); $i++)
    {
        if (!isVowel($s[$i]))
        {
 
            // if character is z,
            // than replace it with character b
            if ($s[$i] == 'z')
                $s[$i] = 'b';
 
            // if the alphabet is not z
            else
            {
 
                // replace the element with
                // next immediate alphabet
                $s[$i] = chr(ord($s[$i]) + 1);
 
                // if next immediate alphabet is vowel,
                // than take next 2nd immediate alphabet
                // (since no two vowels occurs consecutively
                // in alphabets) hence no further
                // checking is required
                if (isVowel($s[$i]))
                    $s[$i] = chr(ord($s[$i]) + 1);
            }
        }
    }
    return $s;
}
 
// Driver code
$s = "geeksforgeeks";
 
echo replaceConsonants($s);
 
// This code is contributed by mits
?>

Javascript




<script>
 
// Javascript program of above approach
 
// Function to check if a character is
// vowel or not
function isVowel(ch)
{
    if (ch != 'a' && ch != 'e' && ch != 'i'
                     && ch != 'o' && ch != 'u')
        return false;
 
    return true;
}
 
// Function that replaces consonant with
// next immediate consonant alphabetically
function replaceConsonants(s)
{
    // Start traversing the string
    for (var i = 0; i < s.length; i++) {
 
        if (!isVowel(s[i])) {
 
            // if character is z,
            // than replace it with character b
            if (s[i] == 'z')
                s[i] = 'b';
 
            // if the alphabet is not z
            else {
 
                // replace the element with
                // next immediate alphabet
                s[i] = String.fromCharCode(s[i].charCodeAt(0) + 1);
 
                // if next immediate alphabet is vowel,
                // than take next 2nd immediate alphabet
                // (since no two vowels occurs consecutively
                // in alphabets) hence no further
                // checking is required
                if (isVowel(s[i]))
                    s[i] = String.fromCharCode(s[i].charCodeAt(0) + 1);
            }
        }
    }
 
    return s.join('');
}
 
// Driver code
var s = "geeksforgeeks".split('');
document.write( replaceConsonants(s));
 
 
</script>
Output: 
heeltgosheelt

 


My Personal Notes arrow_drop_up
Recommended Articles
Page :

Start Your Coding Journey Now!