/* File: palinric.c */ /* Time-stamp: "2001-03-27 14:59:35 calvanes" */ /* Scopo: utilizzo della pila dei record di attivazione come memoria di lavoro */ /* Legge una sequenza di caratteri in ingresso con al centro un '.' e verifica se e` palindroma, ignorando gli spazi bianchi. */ #include <stdio.h> int palindroma(void) /* Verifica se una sequenza di caratteri con '.' al centro e` palindroma */ { char prima, dopo; int pal; /* risultato della verifica sulla sequenza di caratteri tranne il primo e l'ultimo */ do { /* ciclo per saltare spazi bianchi e a capo */ prima = getchar(); } while (prima == ' ' || prima == '\n'); if (prima == '.') return 1; /* la sequenza "." e` palindroma */ else { pal = palindroma(); /* verifica se la sequenza di caratteri tranne il primo e l'ultimo e` palindroma */ do { /* ciclo per saltare spazi bianchi e a capo */ dopo = getchar(); } while (dopo == ' ' || dopo == '\n'); return pal && prima == dopo; } } /* palindroma */ int main(void) { printf("Immetti una sequenza di caratteri (con un '.' centrale)!\n"); if (palindroma()) printf("E` palindroma\n"); else printf("Non e` palindroma\n"); return 0; } /* main */