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

31 May, 2022
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: gksforgksInput: 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:  
Get the string str and character X for which character X is to be removed.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.  
Get the string str and character X for which character X is to be removed.
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.  
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++
Java
Python3
C#
Javascript
// C++ program for the above approach#include <bits/stdc++.h>using namespace std; // Function to remove all occurrences// of a character in the stringstring 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 Codeint main(){    // Given String    string str = "geeksforgeeks";     // Given character    char X = 'e';     // Function Call    str = removeCharRecursive(str, X);    cout << str;    return 0;}
// Java program for the above approachclass GFG{     // Function to remove all occurrences// of a character in the stringstatic 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 Codepublic 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 program for the above approach # Function to remove all occurrences# of a character in the stringdef 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 Stringstr = "geeksforgeeks" # Given characterX = 'e' # Function callstr = removeCharRecursive(str, X) print(str) # This code is contributed by sanjoy_62
// C# program for the above approachusing System; class GFG{     // Function to remove all occurrences// of a character in the stringstatic 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 Codepublic 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
<script> // javascript program for the above approach      // Function to remove all occurrences// of a character in the stringfunction 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 Stringvar str = "geeksforgeeks"; // Given charactervar X = 'e'; // Function callstr = removeCharRecursive(str, X); document.write(str); // This code is contributed by 29AjayKumar</script>
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. 
jrishabh99
amit143katiyar
sanjoy_62
29AjayKumar
rohitkumarsinghcna
Competitive Programming
Recursion
Strings
Strings
Recursion
Writing code in comment?
Please use ide.geeksforgeeks.org,
generate link and share the link here.