/* 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 */