Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- //Elimina caracteres de una cadena en C
- #include <stdio.h>
- #include <stdlib.h>
- #include <string.h>
- void eliminar_caracteres(char *cadena, char caracter) {
- int len = strlen(cadena);//Tamano de la cadena actual
- int offset = 0;
- printf ("Longitud %d \n",len);
- for (int i = 0; i < len; i++) {
- if (cadena[i] != caracter) {//El caracter a suprimir no esta aqui , copiamos
- cadena[i - offset] = cadena[i];//Copia en la posicion de offset de la cadena
- } else {//El caracter c aparece , no se copia y aumento offset
- offset++;
- }
- }
- cadena[len - offset] = '\0';//Terminar en 0 la cadena, teniendo en cuenta los suprimidos
- cadena = realloc(cadena, len - offset + 1);//realloc tamano
- }
- int main() {
- //strdup copia los caracteres hasta \0 incluido
- char *cadena = strdup("Hola mundo!");//Hay que liberar esta zona free
- printf("%s\n", cadena);//Original
- eliminar_caracteres(cadena, 'o');
- printf("%s\n", cadena);//Filtrado
- free(cadena);
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement