Eliminar todas las apariciones de un carácter en una string

Dada una string. Escriba un programa para eliminar todas las ocurrencias de un carácter en la string.

Ejemplos: 

Input : s = "geeksforgeeks"
        c = 'e'
Output : s = "gksforgks"


Input : s = "geeksforgeeks"
        c = 'g'
Output : s = "eeksforeeks"

Primer enfoque: la idea es mantener un índice de la string resultante.  

C++

// C++ program to remove a particular character
// from a string.
#include <bits/stdc++.h>
using namespace std;
 
void removeChar(char* s, char c)
{
 
    int j, n = strlen(s);
    for (int i = j = 0; i < n; i++)
        if (s[i] != c)
            s[j++] = s[i];
 
    s[j] = '\0';
}
 
int main()
{
    char s[] = "geeksforgeeks";
    removeChar(s, 'g');
    cout << s;
    return 0;
}

Java

// Java program to remove
// a particular character
// from a string.
class GFG
{
static void removeChar(String s, char c)
{
    int j, count = 0, n = s.length();
    char []t = s.toCharArray();
    for (int i = j = 0; i < n; i++)
    {
        if (t[i] != c)
        t[j++] = t[i];
        else
            count++;
    }
     
    while(count > 0)
    {
        t[j++] = '\0';
        count--;
    }
     
    System.out.println(t);
}
 
// Driver Code
public static void main(String[] args)
{
    String s = "geeksforgeeks";
    removeChar(s, 'g');
}
}
 
// This code is contributed
// by ChitraNayal

Python3

# Python3 program to remove
# a particular character
# from a string.
 
# function for removing the
# occurrence of character
def removeChar(s, c) :
     
    # find total no. of
    # occurrence of character
    counts = s.count(c)
 
    # convert into list
    # of characters
    s = list(s)
 
    # keep looping until
    # counts become 0
    while counts :
         
        # remove character
        # from the list
        s.remove(c)
 
        # decremented by one
        counts -= 1
 
    # join all remaining characters
    # of the list with empty string
    s = '' . join(s)
     
    print(s)
 
# Driver code
if __name__ == '__main__' :
     
    s = "geeksforgeeks"
    removeChar(s,'g')
     
# This code is contributed
# by Ankit Rai

C#

// C# program to remove a
// particular character
// from a string.
using System;
 
class GFG
{
static void removeChar(string s,
                       char c)
{
    int j, count = 0, n = s.Length;
    char[] t = s.ToCharArray();
    for (int i = j = 0; i < n; i++)
    {
        if (s[i] != c)
        t[j++] = s[i];
        else
            count++;
    }
     
    while(count > 0)
    {
        t[j++] = '\0';
        count--;
    }
     
    Console.Write(t);
}
 
// Driver Code
public static void Main()
{
    string s = "geeksforgeeks";
    removeChar(s, 'g');
}
}
 
// This code is contributed
// by ChitraNayal

PHP

<?php
// PHP program to remove a
// particular character
// from a string.
 
function removeChar($s, $c)
{
 
    $n = strlen($s);
    $count = 0;
    for ($i = $j = 0; $i < $n; $i++)
    {
    if ($s[$i] != $c)
        $s[$j++] = $s[$i];
    else
        $count++;
    }
    while($count--)
    {
        $s[$j++] = NULL;
    }
    echo $s;
}
 
// Driver code
$s = "geeksforgeeks";
removeChar($s, 'g');
 
// This code is contributed
// by ChitraNayal
?>

Javascript

<script>
 
// Javascript program to remove
// a particular character
// from a string.
function removeChar(s, c)
{
    let j, count = 0, n = s.length;
    let t = s.split("");
     
    for(let i = j = 0; i < n; i++)
    {
        if (t[i] != c)
            t[j++] = t[i];
        else
            count++;
    }
      
    while (count > 0)
    {
        t[j++] = '\0';
        count--;
    }
    document.write(t.join(""));
}
 
// Driver Code
let s = "geeksforgeeks";
removeChar(s, 'g');
 
// This code is contributed by avanitrachhadiya2155
 
</script>
Producción: 

eeksforeeks

 

Complejidad de tiempo: O (n) donde n es la longitud de la string de entrada. 
Espacio Auxiliar : O(1)

Segundo enfoque en C++: también podemos usar la clase de string STL y la función de borrado para eliminar cualquier carácter en cualquier posición usando el direccionamiento base (string.begin()).

C++14

#include <bits/stdc++.h>
using namespace std;
 
string removechar(string& word,char& ch)
{
    for(int i=0;i<word.length();i++)
    {
        if(word[i]==ch){
        word.erase(word.begin()+i);
        i--;
        }
    }
     
    return word;
}
 
 
// driver's code
int main()
{
    string word="geeksforgeeks";
    char ch='e';
    cout<<removechar(word,ch);
 
    return 0;
}

Complejidad de tiempo: O(n), donde n es la longitud de la string de entrada. 

Espacio Auxiliar: O(1)

Publicación traducida automáticamente

Artículo escrito por support3 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *