Originariamente inviato da goatboy
Le avevo già messe, ma il programma mi dava la lunghezza della parola e poi mi richiedeva di inserirne un'altra, senza dirmi se era o no palindroma.
Questo perchè se ci guardi bene, se la stringa è palindroma non stampa niente: non hai previsto alcuna stampa.Stampi solo "non è palindroma" se non lo è.
codice:
#include <stdio.h>
#include <stdbool.h>
#define DIM 100
int main(){
char *punt_char;
char parola[DIM];
bool palindroma=true;
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)
{
palindroma=true;
if(*(punt_char+i)==*(punt_char+j)){
i++;
j--;
}else{
printf("La parola non e' palindroma\n");
palindroma=false;
break;
}
}
if(palindroma)
printf("La stringa è palindroma\n");
}
}
}
}