Necesito invertir una cadena de 7 en un código de C++, pero no lo acabo de lograr.

Necesito invertir una cadena de 7 y lo hago de la siguiente forma:
#include <iostream.h>
#include <conio.h>
char palabra[7];
char inversa[7];
int i ;
void main()
{
clrscr();
cout << "Palabra: ";
cin >> palabra;
for(i=6;i>=0;i--)
inversa=palabra[6-i];
cout << "\n" << palabra;
cout << "\n" << inversa;
getch();
}
Debería funcionar pero NO FUNCIONA, si alguine sabe como hacerlo por favor díganme, es URGENTE y haga la prueba primero, pues no funciona ni con getch(), ni con gets(), ni con nada, el problema lo presneta en el intercambio puesto a puesto.

1 Respuesta

Respuesta
1
El código que exhibes es correcto. Pero quizá el código original tenga un error.
Verifica que la línea en donde se encuentra el for no termina con un ';' (punto y coma) y que la palabra que escribes sea de seis caracteres exactamente. De lo contrario, el primer byte que la variable 'inversa' tendría sería el nulo ('\0') y se vería "vacía".
El código sería más efectivo de la siguiente manera:
#include <conio.h>
#include <iostream.h>
#include <string.h>
char palabra[7], inversa[7];
int longitud;
void main()
{
clrscr();
cout << endl << "Introduzca una palabra de 6 letras máximo:";
cin >> palabra;
longitud = strlen(palabra);
for(int i = 0; i < longitud; i++)
{
inversa = palabra[longitud - i - 1];
}
cout << endl << palabra << endl << inversa;
}
Me has solucionado el problema y rápido, te felicito. Y muchas gracias.
Aunque el código que ves fue tomado directamente del archivo y como podrás ver no había error, pero aun así no funcionaba, las correcciones que hiciste fueron las correctas.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas