Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: entreversos en 14 Octubre 2014, 17:46 pm



Título: ingresar frase y devolver al reves
Publicado por: entreversos en 14 Octubre 2014, 17:46 pm
necesito ingresar una frase (hola gente lenguaje c) y devuelva ( c lenguaje gente hola), gracias.


Título: Re: ingresar frase y devolver al reves
Publicado por: Bob1098 en 14 Octubre 2014, 18:14 pm
A ver, en primer lugar tendrías que separar cada una d elas palabras y guardarlas en un array de strings o bien un doble array de char, depende de lo que uses. Luego es simplemente intercambiar el orden de los elementos.

Utiliza un bucle for o while.


Título: Re: ingresar frase y devolver al reves
Publicado por: BlackM4ster en 17 Octubre 2014, 09:13 am
No se hacen tareas

Si quieres, podemos orientarte:

 1 - Split: Tienes que hacer una función que retorne un char** con las palabras separadas por ' '
 2 - Darles la vuelta. Si has sabido hacer el Split en C, no tendrás problemas para ésto :xD :rolleyes: :laugh: :laugh:


Título: Re: ingresar frase y devolver al reves
Publicado por: Bachanilorac en 17 Noviembre 2014, 06:08 am
Hola tengo una duda
.. Trabajo en este programa c++

#include<iostream>
#include<cstring>

using namespace std;

int main()
{
char nombre [18];
cout<<"Ingrese el Nombre Completo:  ";
cin>> nombre;i
for(int i=strlen(nombre)-1;i>=0;i--)
cout<<nombre;

return 0;

pero no sé cómo solucionar el tema del espacio, es decir si escribo un nombre compuesto sólo me imprime al revés el primer nombre..
Tienes alguna idea que me pueda orientar para solucionarlo?
Te lo agradecería.


Título: Re: ingresar frase y devolver al reves
Publicado por: leosansan en 17 Noviembre 2014, 08:18 am
Hola tengo una duda
.. Trabajo en este programa c++

pero no sé cómo solucionar el tema del espacio, es decir si escribo un nombre compuesto sólo me imprime al revés el primer nombre..
Tienes alguna idea que me pueda orientar para solucionarlo?
Te lo agradecería.


Prueba con:

Código
  1. fgets(nombre, 18, stdin);

en lugar del cin.

¡¡¡¡ Saluditos! ..... !!!!


(http://st.forocoches.com/foro/images/smilies/aaaaa.gif)


Título: Re: ingresar frase y devolver al reves
Publicado por: rir3760 en 17 Noviembre 2014, 16:46 pm
no sé cómo solucionar el tema del espacio, es decir si escribo un nombre compuesto sólo me imprime al revés el primer nombre.
Eso sucede porque el operador ">>" solo lee una palabra, para leer una linea de texto debes utilizar la funcion getline (http://www.cplusplus.com/reference/istream/istream/getline/).

Y por favor cuando publiques código fuente utiliza las etiquetas de código. Estas se agregan mediante el cuadro desplegable con el texto "GeSHi" en la pagina de composición de mensajes, solo tienes que seleccionar ahí el lenguaje (C, C++, etc.).

Un saludo


Título: Re: ingresar frase y devolver al reves
Publicado por: Bachanilorac en 17 Noviembre 2014, 23:32 pm
Muchas gracias a ambos por sus respuestas.

Finalmente utilicé getline:

Código:

cin.getline(nombre, 18);

Eso lo resolvió todo :)

Gracias de nuevo.