Ver Mensaje Individual
  #1 (permalink)  
Antiguo 24/11/2011, 17:55
Avatar de AlmaVagabunda
AlmaVagabunda
 
Fecha de Ingreso: noviembre-2011
Ubicación: San Juan De Alicante, Valenciana, Spain, Spain
Mensajes: 20
Antigüedad: 12 años, 6 meses
Puntos: 1
Pregunta Eliminar caracteres pares o impares en C

Hola, de vuelta estoy aqui, a ver si alguien me puede ayudar.
Estoy haciendo un programa en C, para hacer diversas funciones con cadenas, una de ella es eliminar los caracteres pares o los impares, es decir:

Hola---> par: oa || impar: hl

He conseguido que me cambie los caracteres a eliminar, por "_", pero necesito que los elimine, y no deje espacio en blanco donde ha eliminado una letra.
He probado "\0", 0, -1, '', ' ', ... y alguna locura mas, pero sigo sin poder hacer nada.
En la cadena original pueden haber espacios, asi que no es eliminar todos los espacios que hayan.

Os dejo el codigo (que no se si sera el mejor) de la funcion en concreto, la funcion recibe la referencia de la cadena, y ya realiza todo el proceso.

Código C:
Ver original
  1. void EliminarParesImpares(char cadena1[]){
  2.     int i,l,a;
  3.    
  4.     l=strlen(cadena1);
  5.     printf("\nEliminar pares o impares <p/i>: ");
  6.     a=getche();
  7.     if (a=='p'){
  8.         for(i=0;i<l;i++){
  9.             cadena1[i+1]='_';
  10.             i++;
  11.         }
  12.     }
  13.     if (a=='i'){
  14.         for(i=0;i<l;i++){
  15.             i++;
  16.             cadena1[i-1]='_';
  17.         }
  18.     }
  19.     system("cls");
  20.     return;
  21. }


Muchas gracias de antemano