Guest User

Untitled

a guest
Jan 16th, 2019
179
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.76 KB | None | 0 0
  1. /**
  2. Remover caracteres de una cadena
  3. en C
  4.  
  5. @author parzibyte
  6. */
  7. #include <stdio.h> // printf
  8.  
  9. /**
  10. Remover caracteres o letras de una palabra o cadena.
  11. Nota: esta función modifica directamente a la cadena
  12.  
  13. @param char* cadena La cadena que se va a limpiar
  14. @param char* caracteres Una cadena con caracteres que se tienen que
  15. quitar de la cadena
  16. @return void
  17. */
  18. void removerCaracteres(char *cadena, char *caracteres);
  19.  
  20. int main() {
  21. char cadena[] = "Hola, soy una cadena en C. Visita parzibyte.me ;)";
  22. char caracteres[] = ". ,;)";
  23. printf("La cadena es: '%s'\n", cadena);
  24. printf("Y los caracteres que se quitan son: %s\n", caracteres);
  25. removerCaracteres(cadena, caracteres);
  26. printf("Después de remover es: '%s'\n", cadena);
  27. return 0;
  28. }
  29.  
  30. void removerCaracteres(char *cadena, char *caracteres) {
  31. int indiceCadena = 0, indiceCadenaLimpia = 0;
  32. int deberiaAgregarCaracter = 1;
  33. // Recorrer cadena carácter por carácter
  34. while (cadena[indiceCadena]) {
  35. // Primero suponemos que la letra sí debe permanecer
  36. deberiaAgregarCaracter = 1;
  37. int indiceCaracteres = 0;
  38. // Recorrer los caracteres prohibidos
  39. while (caracteres[indiceCaracteres]) {
  40. // Y si la letra actual es uno de los caracteres, ya no se agrega
  41. if (cadena[indiceCadena] == caracteres[indiceCaracteres]) {
  42. deberiaAgregarCaracter = 0;
  43. }
  44. indiceCaracteres++;
  45. }
  46. // Dependiendo de la variable de arriba, la letra se agrega a la "nueva
  47. // cadena"
  48. if (deberiaAgregarCaracter) {
  49. cadena[indiceCadenaLimpia] = cadena[indiceCadena];
  50. indiceCadenaLimpia++;
  51. }
  52. indiceCadena++;
  53. }
  54. // Al final se agrega el carácter NULL para terminar la cadena
  55. cadena[indiceCadenaLimpia] = 0;
  56. }
Add Comment
Please, Sign In to add comment