Buona sera a tutti, ho un problema con il seguente esercizio, ovvero di scrivere una funzione per determinare se una parola è "Palindroma" (Ad esempio radar si può leggere in allo stesso modo in entrambi i sensi. Vi allego qui il mio codice:
#include <iostream>
#include <cstring>
#define MAX 10
using namespace std;
int palindroma(char parola[], int lunghezza_parola);
int main()
{
char parola[MAX];
cout << "Inserisci una parola: "; cin >> parola;
int lunghezza_parola = strlen(parola);
palindroma(parola, lunghezza_parola);
}
int palindroma(char parola[], int lunghezza_parola)
{
char parola_contrario[MAX];
int j = 0;
for (int i = (lunghezza_parola - 1); i >= 0 ; i-- )
{
parola_contrario[j] = parola[i];
j++;
}
cout << "Parola al contrario: " << parola_contrario << endl;
if (parola_contrario == parola)
cout << "La parola e' palindroma" << endl;
else
cout << "La parola non e' palindroma" << endl;
return 0;
}
Qui vi è un ciclo for che prende la parola messa in input e la restituisce in ordine inverso
for (int i = (lunghezza_parola - 1); i >= 0 ; i-- )
{
parola_contrario[j] = parola[i];
j++;
}
. Dopo di che ho messo un if per verifcare se parola_contrario e uguale alla parola inserita precedentemente. Però il programma mi dice sempre che la parola non è palindroma, non capisco cosa dovrei cambiare/aggiungere. Ringrazio in anticipo