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)