Stratos: Punto de Encuentro de Desarrolladores

¡Bienvenido a Stratos!

Acceder

Foros





[C]Ejercicio

Iniciado por Diegunix, 31 de Mayo de 2008, 08:32:07 PM

« anterior - próximo »

Diegunix

Bueno el ejercicio es sobre putchars y getchars y dice asi

Escriva un programa que copie su entrada a la salida, reemplazando cada cadena de uno o mas blancos por un solo blanco.


Lo de que copie su entrada a la salida puede ser asi

#include <stdio.h>

main ( )

{ int a;

 a=getchar( );

 while (a!=EOF)
 
 putchar (c);


}




Ahora lo de remplazar blancos no se como hacerlo..
gracias Diegunix
ascal-C

nostromo

Y dime, con un ejercicio tan sencillo que esperas que te digamos... porque si te pongo aquí la solución que ganas tú.

Un consejo: inténtalo hacer tú mismo, es la mejor manera de empezar a aprender.

El código que has puesto lo tienes mal....  aunque parecido al bueno.

Un saludo

Diegunix

mira lo intente pero no me salio, y ese codigo es para copiar la entrada en la salida segun mi libro ahora mi pregunta es como remplaso ya que decis que es taaaan faaacil
ascal-C

fjfnaranjo

Pregunta en el 11822, seguro que ahí te lo dicen...

(y no hijo, no porque nos digas que es fácil te lo vamos a decir antes...)

EDIT: Cagada ortográfica grave, menos mal que esto no es un wiki...
fjfnaranjo.com - Creating entertainment - Creando entretenimiento
fjfnaranjo [4t] gm4il [d0t] c0m (mail y msn)

Diegunix

dejen no mas amargados ya consegui

#include <stdio.h>

int main()
{
   int a, b=0;
   while((a = getchar())!=EOF)
   {
       if(a!=' ')
       {
           putchar(a);
           b=0;
       }
       else if(b!=1)
       {
           putchar(a);
           b=1;
       }
   }
   return 0;
}
ascal-C

nostromo

Enhorabuena, ya ves que podías hacerlo tu solo.

Bienvenido al foro

fjfnaranjo

Bienvenido también por mi parte, que te he chinchado un poquito  :wink:
fjfnaranjo.com - Creating entertainment - Creando entretenimiento
fjfnaranjo [4t] gm4il [d0t] c0m (mail y msn)

yens

Diegunix, felicidades por solucionarlo tu sólo, y esperemos que veas lo gratificante que es sacar las cosas por uno mismo en lugar de rascaras las pelotas.

A por más problemas ;)

Buffon



#include <stdio.h>

int main()
{
  int a, b=0;
  while((a = getchar())!=EOF)
  {
      if(a!=' ')
      {
           putchar(a);
           b=0;
      }
      else if(b!=1)
      {
         putchar(a);
         b=1;
      }
  }
  return 0;
}


hay una página con ejercicios en C++, pero que corregirán tu ejercicio y aseguraran que funciona correctamente, que ocurre si en tu código recibes ' ' '\n' ' ' funciona ?

http://acm.uva.es/

tiene centenares de miles de ejercicios en C++ para realizar, tu haces el código y lo envías por correo y te responde si ha pasado los juegos de prueba, así sabras cuando creas que tu código funciona bien que realmente está bien hecho.

Ya te digo yo que tu código está mal jeje :P

jalbam

Buffon, cuando dices recibir ''\n'', ¿te refieres a que el usuario del programa le apriete la tecla intro?

El programa funciona bien por "frases": cada vez que aprietan el intro, repite la frase pero borra los espacios que siguen a otro espacio (dejando uno sólo).

¿Dónde está el problema?
-----
Juan Alba Maldonado

Buffon

Cita de: "jalbam"Buffon, cuando dices recibir ''\n'', ¿te refieres a que el usuario del programa le apriete la tecla intro?

El programa funciona bien por "frases": cada vez que aprietan el intro, repite la frase pero borra los espacios que siguen a otro espacio (dejando uno sólo).

¿Dónde está el problema?

Yo entiendo que todo juego de pruebas se ha de pasar mediante ficheros de testing, esto es por ejemplo, si la aplicación se llama ejercicio2


./ejercicio2 < entrada.txt


si entrada.txt es como sigue:
(he cambiado espacios por '_')

hola_esto_es_una_prueba_
_que_no_funciona


los espacios del final no los elimina, quedaría exactamente igual el fichero.

para comprobarlo en el else if(b!=1) ponted putchar('&') en vez de putchar(a)

y verás que te da este resultado:


hola_esto_es_una_prueba&
&que_no_funciona


prueba que creo que falla, a no ser que el ejercicio hablara UNICAMENTE de frases en una misma linea, pero el enunciado pone que el programa copie su entrada en su salida, cosa que deja más claro lo de
./ejercicio1 < entrada.txt > salida.txt

jalbam

Gracvias por la respuesta.

Entiendo lo que quieres decir. Yo creo que si es un programa de iniciacíón puede que, aunque el enunciado no esté muy adaptado, se refiera efectivamente a sólo tratar línea por línea. Pero también puede ser lo que tú dices.

Respecto a lo último que comentas, si hacemos putchar("&") yo creo que obtendríamos:

Citarhola&esto&es&una&prueba&
&que&no&funciona

y no esto que comentas:

Citarhola_esto_es_una_prueba&
&que_no_funciona

Por lo demás, todo correcto :)

Un saludo
-----
Juan Alba Maldonado






Stratos es un servicio gratuito, cuyos costes se cubren en parte con la publicidad.
Por favor, desactiva el bloqueador de anuncios en esta web para ayudar a que siga adelante.
Muchísimas gracias.