Open In App

Remove all occurrences of a character in a string | Recursive approach

Last Updated : 15 Jul, 2025
Comments
Improve
Suggest changes
Like Article
Like
Report

Given string str, the task is to write a recursive program to remove all the occurrences of a character X in the string.

Examples:

Input: str = "geeksforgeeks", c = 'e' 
Output: gksforgks
Input: str = "geeksforgeeks", c = 'g' 
Output: eeksforeeks 
 

Iterative Approach: The iterative approach to this problem can be found in this post.
Recursive Approach: Below are the steps: 
 

  1. Get the string str and character X for which character X is to be removed.
  2. Recursively iterate for all the character in the string: 
    • Base Case: If the length of the string str called recursively is 0 then return the empty string from the function. 
       
if(str.length()==0) {
   return "";
}
  • Recursive Call: If the base case is not met, then check for the character at 0th index if it is X then recursively iterate for the substring removing the first character.
if (str[0] == X) {
        return recursive_function(str.substr(1), X);
}
  • Return Statement: At each recursive call(except the base case and the above condition), return the recursive function for the next iteration including the character at 0th index
     
return str[0] + recursive_function(str.substr(1), X)


Below is the implementation of the above approach:
 

C++
// C++ program for the above approach
#include <bits/stdc++.h>
using namespace std;

// Function to remove all occurrences
// of a character in the string
string removeCharRecursive(string str,
                           char X)
{
    // Base Case
    if (str.length() == 0) {
        return "";
    }

    // Check the first character
    // of the given string
    if (str[0] == X) {

        // Pass the rest of the string
        // to recursion Function call
        return removeCharRecursive(str.substr(1), X);
    }

    // Add the first character of str
    // and string from recursion
    return str[0]
           + removeCharRecursive(str.substr(1), X);
}

// Driver Code
int main()
{
    // Given String
    string str = "geeksforgeeks";

    // Given character
    char X = 'e';

    // Function Call
    str = removeCharRecursive(str, X);
    cout << str;
    return 0;
}
Java
// Java program for the above approach
class GFG{
    
// Function to remove all occurrences
// of a character in the string
static String removeCharRecursive(String str,
                                  char X)
{
    
    // Base Case
    if (str.length() == 0)
    {
        return "";
    }

    // Check the first character
    // of the given string
    if (str.charAt(0) == X)
    {

        // Pass the rest of the string
        // to recursion Function call
        return removeCharRecursive(
               str.substring(1), X);
    }

    // Add the first character of str
    // and string from recursion
    return str.charAt(0) +
           removeCharRecursive(
           str.substring(1), X);
}

// Driver Code
public static void main(String[] args)
{
    
    // Given String
    String str = "geeksforgeeks";

    // Given character
    char X = 'e';

    // Function call
    str = removeCharRecursive(str, X);
    
    System.out.println(str);
}
}

// This code is contributed by jrishabh99
Python3
# Python3 program for the above approach

# Function to remove all occurrences
# of a character in the string
def removeCharRecursive(str, X):
    
    # Base Case
    if (len(str) == 0):
        return ""
    
    # Check the first character
    # of the given string
    if (str[0] == X):

        # Pass the rest of the string
        # to recursion Function call
        return removeCharRecursive(str[1:], X)
    
    # Add the first character of str
    # and string from recursion
    return str[0] + removeCharRecursive(str[1:], X)

# Driver Code

# Given String
str = "geeksforgeeks"

# Given character
X = 'e'

# Function call
str = removeCharRecursive(str, X)

print(str)

# This code is contributed by sanjoy_62
C#
// C# program for the above approach
using System;

class GFG{
    
// Function to remove all occurrences
// of a character in the string
static String removeCharRecursive(String str,
                                  char X)
{
    
    // Base Case
    if (str.Length == 0)
    {
        return "";
    }

    // Check the first character
    // of the given string
    if (str[0] == X)
    {

        // Pass the rest of the string
        // to recursion Function call
        return removeCharRecursive(
            str.Substring(1), X);
    }

    // Add the first character of str
    // and string from recursion
    return str[0] + removeCharRecursive(
                    str.Substring(1), X);
}

// Driver Code
public static void Main(String[] args)
{
    
    // Given String
    String str = "geeksforgeeks";

    // Given character
    char X = 'e';

    // Function call
    str = removeCharRecursive(str, X);
    
    Console.WriteLine(str);
}
}

// This code is contributed by Amit Katiyar
 
JavaScript
<script>

// javascript program for the above approach

    
// Function to remove all occurrences
// of a character in the string
function removeCharRecursive(str,X)
{
    
    // Base Case
    if (str.length == 0)
    {
        return "";
    }

    // Check the first character
    // of the given string
    if (str.charAt(0) == X)
    {

        // Pass the rest of the string
        // to recursion Function call
        return removeCharRecursive(
               str.substring(1), X);
    }

    // Add the first character of str
    // and string from recursion
    return str.charAt(0) +
           removeCharRecursive(
           str.substring(1), X);
}

// Driver Code
//Given String
var str = "geeksforgeeks";

// Given character
var X = 'e';

// Function call
str = removeCharRecursive(str, X);

document.write(str);

// This code is contributed by 29AjayKumar 
</script>

Output: 
gksforgks

 

Time Complexity: O(N), as we are using a recursive calls to traverse N times, where N is the length of the string.

Auxiliary Space: O(1), as we are not using any extra space.
 


Article Tags :

Similar Reads