Salve,
ieri all'Università il Prof ci ha fatto fare un esercizio dove dovevamo verificare se una parola inserita dall'utente era palindroma. L'esercizio andava svolto con i puntatori. Nel provarlo a casa però non funziona. Non riesco a capire quale errore ho fatto. L'ho ricontrollato varie volte, riga per riga, e tra l'altro non mi vengono dati errori o warnings, quindi non ho indizi
Il programma mi chiede di digitare la parola, io la scrivo e premo invio. Il programma mi dice la lunghezza della parola, ma poi mi richiede di digitare una parola, quindi mi salta tutto il controllo if-else, e non capisco perchè. Qualcuno sa aiutarmi?
EDIT: ho modificato "if(*(punt_char+i)==*(punt_char+j))" in "if(*punt_char+i==*punt_char+j)" e ora mi fa il controllo, soltanto che dice sempre "La parola non è palindroma" anche se inserisco "anna" o altre parole palindrome.
Il codice è questo:
codice:
#include <stdio.h>
#define DIM 100
int main(){
char *punt_char;
char parola[DIM];
char c;
int lung, flag=0, i, j;
while(!flag){
punt_char=parola;
lung=0;
printf("Digita la parola: ");
while(((c=getchar())!=' ' && c!='\n')){
*(punt_char+lung)=c;
lung++;
}
*(punt_char+lung)='\0';
printf("La parola ha lunghezza %d caratteri\n", lung);
if(lung==0){
flag=1;
printf("Fine Programma\n");
}else{
if(lung==1){
printf("Carattere Isolato\n");
}else{
i=0;
j=lung-1;
while(i<j){
if(*punt_char+i==*punt_char+j){
i++;
j--;
}else{
printf("La parola non e' palindroma\n");
break;
}
}
}
}
}
}