Test Foro de elhacker.net SMF 2.1

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:


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:


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 (cpp) [Seleccionar]
#include "stdafx.h"
#include "iostream"
#include "conio.h"
using namespace std;

int main ()
{
char cadena[5];
int i;

   

cout << "Introduzca su cadena de 4 caracteres: " << endl;
cin >> cadena[5];
        for(i=4, i>=0, i--);
cout << "Su cadena al reves es: " << cadena << endl;
}

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 (cpp) [Seleccionar]

#include <iostream>


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 (cpp) [Seleccionar]

for(... ; ... ; ...)

y el ; que pones despues del for sobra

Prueba así

Código (cpp) [Seleccionar]

#include <iostream>
using namespace std;

int main ()
{
char cadena[5];
int i;

cout << "Introduzca su cadena de 4 caracteres: " << endl;
cin >> cadena;
        cout << "Su cadena al reves es: ";
        for(i=4; i>=0; i--)
    cout<< cadena[i] << endl;

        return 0;
}


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
Cita de: cazagavilan en 15 Abril 2011, 12:45 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 ;)