• Sábado 14 de Diciembre de 2024, 20:37

Autor Tema:  Como Arreglo Esto  (Leído 1094 veces)

cazadorite

  • Nuevo Miembro
  • *
  • Mensajes: 23
    • Ver Perfil
Como Arreglo Esto
« en: Martes 1 de Enero de 2008, 18:51 »
0
hi gente el programa se tiene que ingresar 2 cadenas distintas luego ingreso 1 caracter y si aparecen en las cadenas ese caracter se tiene que borrar weno el problema que tengo que se informa mal x pantalla se muestra las cadenas hasta la letra borrada pero no muestra el final de la cadena creo que es porque al evitar ese caracter queda vacio por x eso necesito una mano para solucionarlo.

Código: Text
  1.  
  2. #include<stdio.h>
  3. #include<conio.h>
  4. #include<string.h>
  5.  
  6. int main (void)
  7. {
  8.  char cad[2][20],l,c;
  9.  char aux[2][20]={0};
  10.  for(int x=0;x<2;x++)
  11.  {
  12.  printf ("Introduce palabra ");
  13.  gets (cad[x]);
  14.  }
  15.  printf ("caracter ");
  16.  scanf("%c",&l);
  17.  
  18.   for(int j=0; j<2; j++)
  19.   {
  20.     for(int k=0; k<strlen(cad[j]); k++)
  21.     {
  22.     c=cad[j][k];
  23.     if(c!=l)
  24.     aux[j][k]=c;
  25.     }
  26.   }
  27.   for(int z=0;z<2;z++)
  28.   printf(" %s \n",aux[z]);
  29.  
  30. return 0;
  31. }
  32.  
  33.  

Eternal Idol

  • Moderador
  • ******
  • Mensajes: 4696
  • Nacionalidad: ar
    • Ver Perfil
Re: Como Arreglo Esto
« Respuesta #1 en: Miércoles 2 de Enero de 2008, 14:55 »
0
Usa un espacio (' ' o 32) para cuando sea el caracter a borrar o cambia la logica para mostrar caracter a caracter ...

Nacional y Popular En mi país la bandera de Eva es inmortal.


Queremos una Argentina socialmente justa, económicamente libre y  políticamente soberana.
¡Perón cumple, Evita dignifica!


La mano invisible del mercado me robo la billetera.

Mollense

  • Miembro de PLATA
  • *****
  • Mensajes: 1755
  • Nacionalidad: ar
    • Ver Perfil
    • http://solocodigo.com/
Re: Como Arreglo Esto
« Respuesta #2 en: Miércoles 2 de Enero de 2008, 15:19 »
0
Cita de: "cazadorite"
hi gente el programa se tiene que ingresar 2 cadenas distintas luego ingreso 1 caracter y si aparecen en las cadenas ese caracter se tiene que borrar weno el problema que tengo que se informa mal x pantalla se muestra las cadenas hasta la letra borrada pero no muestra el final de la cadena creo que es porque al evitar ese caracter queda vacio por x eso necesito una mano para solucionarlo.

Código: Text
  1.  
  2. #include<stdio.h>
  3. #include<conio.h>
  4. #include<string.h>
  5.  
  6. int main (void)
  7. {
  8.  char cad[2][20],l,c;
  9.  char aux[2][20]={0};
  10.  for(int x=0;x<2;x++)
  11.  {
  12.  printf ("Introduce palabra ");
  13.  gets (cad[x]);
  14.  }
  15.  printf ("caracter ");
  16.  scanf("%c",&l);
  17.  
  18.   for(int j=0; j<2; j++)
  19.   {
  20.     for(int k=0; k<strlen(cad[j]); k++)
  21.     {
  22.     c=cad[j][k];
  23.     if(c!=l)
  24.     aux[j][k]=c;
  25.     }
  26.   }
  27.   for(int z=0;z<2;z++)
  28.   printf(" %s \n",aux[z]);
  29.  
  30. return 0;
  31. }
  32.  
  33.  
Lo que pasa es que estás guardando los caracteres en la posición original de la cadena, y si ya eliminaste, por ejemplo, un caracter deberías guardarlo en una posicion anterior.

Probá así:

<!--xc1--></div><table border='0' align='center' width='95%' cellpadding='3' cellspacing='1'><tr><td>XCODE </td></tr><tr><td id='XCODE'><!--exc1-->    int pos=0;
    for(int k=0; k<strlen(cad[j]); k++)
    {
      c=cad[j][k];
      if(c!=l){
          aux[j][pos]=c;
          pos++;
      }
    }<!--xc2--></td></tr></table><div class='postcolor'><!--exc2-->

Un saludo :beer:
"Los que renuncian son más numerosos que los que fracasan" H.F.
"No se cómo sería la III Guerra Mundial, pero la cuarta sería con piedras" A.E.
"Quién no fía no es de fiar..."


...no te quedes mirando.

fORU-

  • Miembro MUY activo
  • ***
  • Mensajes: 225
  • Nacionalidad: mo
    • Ver Perfil
Re: Como Arreglo Esto
« Respuesta #3 en: Miércoles 2 de Enero de 2008, 22:53 »
0
ok, quieres que tu programa tenga de entrada dos cadenas y un caracter, y que despues si el caracter introducido se encuentra en alguna de las cadenas que se borre el caracter de la cadena. Bueno si es solo eso, solo te puedo recomendar que:


Utilizes strcmp(cad1,caracter), si cad1=caracter te regresara un 0 como resultado

bueno es todo le que puedo decir, ha por cierto si no puedes con matrices intentalo con otra logica sale .
atte:fORU-