Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: cazagavilan en 15 Abril 2011, 08:45 am



Título: cadena de caracteres con cout
Publicado por: cazagavilan en 15 Abril 2011, 08:45 am
Hola, alguien me podria decir como hacer un programa que el usuario introduzca una cadena de caracteres y se la devuelva al reves con cout y cin? muchas gracias.


Título: Re: cadena de caracteres con cout
Publicado por: Akai en 15 Abril 2011, 09:44 am
Entre las diversas opciones que hay:

a) lees carácter a carácter de la entrada y lo guardas en una cadena, y luego imprimes de n-1 a 0 carácter a carácter.

b) lees la cadena de golpe, imprimes de la misma forma que el anterior.


Título: Re: cadena de caracteres con cout
Publicado por: cazagavilan en 15 Abril 2011, 09:56 am
Me puedes poner un ejemplo de la primera por favor? ( Soy muy nuevo XD)

Gracias.


Título: Re: cadena de caracteres con cout
Publicado por: satu en 15 Abril 2011, 10:42 am
Hola

No te voy a hacer la tarea pero te voy a orientar:

Código:
escribir "Introduce la cadena"
leer cadena
para i desde cadena.fin hasta cadena.inicio hacer
  escribir cadena[i]
fin para

así de simple es el programa, cuando intentes hacerlo y tengas dudas concretas las preguntas pero no pidas que te lo hagamos

Saludos


Título: Re: cadena de caracteres con cout
Publicado por: cazagavilan en 15 Abril 2011, 10:55 am
Solo necesito saber cual es la justo la formula que hace que se inviertan los caracteres y que me expliques el por que sucede por favor, gracias.


Título: Re: cadena de caracteres con cout
Publicado por: satu en 15 Abril 2011, 11:15 am
No necesitas ninguna formula para invertir nada, piensa que una cadena de caracteres es un array y los arrays van desde 0 hasta longitud-1, pues solo debes recorrerlo desde el final hasta el principio:

Código:
char cadena[100]
leer cadena
for(i=99; i>=0; i--)
  escribir cadena[i]

ya solo tienes que sustituir leer y escribir por cin y cout


Título: Re: cadena de caracteres con cout
Publicado por: cazagavilan en 15 Abril 2011, 11:19 am
Muchisimas gracias.


Título: Re: cadena de caracteres con cout
Publicado por: satu en 15 Abril 2011, 11:25 am
De nada, si tienes alguna duda ya sabes donde estamos

Saludos


Título: Re: cadena de caracteres con cout
Publicado por: cazagavilan en 15 Abril 2011, 12:13 pm
No se que hago mal pero me da este error: error C2143: error de sintaxis : falta ';' delante de ')'.
Código
  1. #include "stdafx.h"
  2. #include "iostream"
  3. #include "conio.h"
  4. using namespace std;
  5.  
  6. int main ()
  7. {
  8. char cadena[5];
  9. int i;
  10.  
  11.  
  12.  
  13. cout << "Introduzca su cadena de 4 caracteres: " << endl;
  14. cin >> cadena[5];
  15.        for(i=4, i>=0, i--);
  16. cout << "Su cadena al reves es: " << cadena << endl;
  17. }
Lo siento soy muy nuevo xD, gracias.


Título: Re: cadena de caracteres con cout
Publicado por: satu en 15 Abril 2011, 12:40 pm
Hola

Utiliza solo las cabeceras que necesites, en este caso solo necesitas iostream, pero recuerda ponerlo asi

Código
  1. #include <iostream>
  2.  

además el uso de conio está desaconsejado, lee esto (https://foro.elhacker.net/programacion_cc/lo_que_no_hay_que_hacer_en_cc_nivel_basico-t277729.0.html)

El fallo que te da está en el for
Código
  1. for(... ; ... ; ...)
  2.  
y el ; que pones despues del for sobra

Prueba así

Código
  1. #include <iostream>
  2. using namespace std;
  3.  
  4. int main ()
  5. {
  6. char cadena[5];
  7. int i;
  8.  
  9. cout << "Introduzca su cadena de 4 caracteres: " << endl;
  10. cin >> cadena;
  11.        cout << "Su cadena al reves es: ";
  12.        for(i=4; i>=0; i--)
  13.    cout<< cadena[i] << endl;
  14.  
  15.        return 0;
  16. }
  17.  

Y recuerda el return del final

Saludos


Título: Re: cadena de caracteres con cout
Publicado por: cazagavilan en 15 Abril 2011, 12:44 pm
Ya lo he solucionado gracias =)


Título: Re: cadena de caracteres con cout
Publicado por: cazagavilan en 15 Abril 2011, 12:45 pm
para que sirve return?


Título: Re: cadena de caracteres con cout
Publicado por: ssaammuu en 15 Abril 2011, 13:01 pm
main es una función que devuelve un int: int main()
por lo que espera que devuelvas un valor entero al terminar la función
se usa return 0; para indicar que no ocurrieron errores


Título: Re: cadena de caracteres con cout
Publicado por: Akai en 15 Abril 2011, 14:26 pm
para que sirve return?

return devuelve un valor a la función que ha llamado a la que usa el return.

En el caso de main, como ssaammuu te ha dicho, devuelveun 0 al sistema operativo para indicar que su ejecución ha sido correcta.


Título: Re: cadena de caracteres con cout
Publicado por: cazagavilan en 15 Abril 2011, 19:11 pm
gracias, la verda es que este foro me ha venido de lujo ;)