cadena de caracteres con cout

Iniciado por cazagavilan, 15 Abril 2011, 08:45 AM

0 Miembros y 1 Visitante están viendo este tema.

cazagavilan

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.

Akai

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.

cazagavilan

Me puedes poner un ejemplo de la primera por favor? ( Soy muy nuevo XD)

Gracias.

satu

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
Breakbeat como forma de vida

cazagavilan

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.

satu

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
Breakbeat como forma de vida

cazagavilan


satu

De nada, si tienes alguna duda ya sabes donde estamos

Saludos
Breakbeat como forma de vida

cazagavilan

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.

satu

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

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
Breakbeat como forma de vida