Salve. Ho un problema con un esercizio. Qualcuno potrebbe correggerlo e dirmi dove sbaglio? Grazie
Traccia: Scrivere un programma in linguaggio C che riceve in ingresso una parola inserita da tastiera. Si consideri che la parola può contenere sia caratteri maiuscoli che caratteri minu scoli, e complessivamente al massimo 30 caratteri. Il programma deve svolgere le seguenti operazioni:
•visualizzare la parola inserita
•aggiornare la parola in modo che tutti i caratteri siano minuscoli. Il programma deve
visualizzare la parola ottenuta
•verificare se la parola è palindroma. Una parola è palindroma se può essere letta
indifferentemente da sinistra verso destra e da destra verso sinistra. Ad esempio, le
seguenti parole sono palindrome: otto, madam.
#include <stdio.h>
#include <string.h>
#include <ctype.h>
#include <unistd.h>
#define N 30
main () {
char str1[N], str2[N];
int i, j, l, n;
printf("Inserire la parola da analizzare\n");
gets(str1);
printf ("La parola da analizzare e %s\n", str1);
//conversione da maiuscoli a minuscoli
for( i=0; i<N ; i++ ) {
str1[i] = tolower(str1[i]);
}
printf("Converto la parola in minuscolo...\n");
sleep (3);
printf("La parola convertita e' %s\n", str1);
l=strlen(str1);
n=0;
strcpy(str2,str1);
for (i=0; i<l; i++){
for (j=l-1; j>=0; j--){
if (str1[i]==str2[j]){
n++;
}
else
n--;
}
}
if (n=l){
printf("La parola e' palindroma");
}
else
printf("La parola non e' palindroma");
}
Vi ringrazio in anticipo.