Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /**
- 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;
- }
Add Comment
Please, Sign In to add comment