Created
January 16, 2019 16:11
-
-
Save parzibyte/57832411cd02fe1db7dcd0b60bd74db8 to your computer and use it in GitHub Desktop.
Remover caracteres de cadena en C created by parzibyte - https://repl.it/@parzibyte/Remover-caracteres-de-cadena-en-C
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
/** | |
Remover caracteres de una cadena | |
en C | |
@author parzibyte | |
*/ | |
#include <stdio.h> // printf | |
/** | |
Remover caracteres o letras de una palabra o cadena. | |
Nota: esta función modifica directamente a la cadena | |
@param char* cadena La cadena que se va a limpiar | |
@param char* caracteres Una cadena con caracteres que se tienen que | |
quitar de la cadena | |
@return void | |
*/ | |
void removerCaracteres(char *cadena, char *caracteres); | |
int main() { | |
char cadena[] = "Hola, soy una cadena en C. Visita parzibyte.me ;)"; | |
char caracteres[] = ". ,;)"; | |
printf("La cadena es: '%s'\n", cadena); | |
printf("Y los caracteres que se quitan son: %s\n", caracteres); | |
removerCaracteres(cadena, caracteres); | |
printf("Después de remover es: '%s'\n", cadena); | |
return 0; | |
} | |
void removerCaracteres(char *cadena, char *caracteres) { | |
int indiceCadena = 0, indiceCadenaLimpia = 0; | |
int deberiaAgregarCaracter = 1; | |
// Recorrer cadena carácter por carácter | |
while (cadena[indiceCadena]) { | |
// Primero suponemos que la letra sí debe permanecer | |
deberiaAgregarCaracter = 1; | |
int indiceCaracteres = 0; | |
// Recorrer los caracteres prohibidos | |
while (caracteres[indiceCaracteres]) { | |
// Y si la letra actual es uno de los caracteres, ya no se agrega | |
if (cadena[indiceCadena] == caracteres[indiceCaracteres]) { | |
deberiaAgregarCaracter = 0; | |
} | |
indiceCaracteres++; | |
} | |
// Dependiendo de la variable de arriba, la letra se agrega a la "nueva | |
// cadena" | |
if (deberiaAgregarCaracter) { | |
cadena[indiceCadenaLimpia] = cadena[indiceCadena]; | |
indiceCadenaLimpia++; | |
} | |
indiceCadena++; | |
} | |
// Al final se agrega el carácter NULL para terminar la cadena | |
cadena[indiceCadenaLimpia] = 0; | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Muy útil, gracias👍👍👍