SoloCodigo

Programación General => C/C++ => Mensaje iniciado por: masterdeath en Miércoles 17 de Febrero de 2010, 05:06

Título: Eliminar Espacios
Publicado por: masterdeath en Miércoles 17 de Febrero de 2010, 05:06
Hola amigos de solo codigo!
el chiste es ke el programa recibe: hola a a a a y debe de imprimir holaaaaa =D facil y sencillo jajajaja aja ¬¬

espero no ser molestia =D me he estado chutando este programa pero ia no doy una jajajaja al final me tira error si corre pero no imprime todo lo ke kiero en si si le introduzco " hola a a a " , solo me imprime " holaa "

aki tengo el codigo de lo que hice ojala me puedan echar una manita en ke toy mal  =)

Código: C++
  1. #include <stdio.h>
  2. #include <conio.h>
  3. #include <string.h>
  4. main ()
  5. {
  6. int i;
  7. char cad[256],cad1[256];
  8. printf(" Introduce una Cadena de caracteres de tamaño maximo 256 ");
  9. gets(cad);
  10. for (i=0;i<=(strlen(cad));i++)
  11. if ( cad[i] != ' ' )
  12.         cad1[i]=cad[i];
  13.     else
  14.     {
  15.         cad1[i]=cad[i+1];
  16.         i=i+2;
  17.     }
  18. printf(" su cadena sin espacios es:n ");
  19. puts(cad1);
  20. getch();
  21. }
  22.  

lo que quiero es ke introduscas una cadena con espacios y que te la imprima sin espacios ^^
Título: Re: Eliminar Espacios
Publicado por: Eternal Idol en Miércoles 17 de Febrero de 2010, 09:00
Tenes que usar dos contadores, uno para cada cadena, ahora cuando incrementas i por ser espacio va a haber dos caracteres indefinido en cad1 (te los saltas).

 Introduce una Cadena de caracteres de tama±o maximo 256 hola a a a
 su cadena sin espacios es:
 holaa%8aa

Si te sale holaa es por casualidad, tenes la cadena cad1 con un 0 que la termina justo ahi.

Otra manera mucho mas simple es solo imprimir los caracteres que no sean espacio uno por uno ...
Título: Re: Eliminar Espacios
Publicado por: herzdark en Sábado 27 de Febrero de 2010, 06:17
a mi me gustaria con 2 punteros a char (char *) es tedioso pero si lo sacas es joya!!!