L'ho capito
Se c'e' qualche altro ignorantone come me che non sa cosa sia: http://www.splash.it/giochi/enigmistica/palindromo/
...Bhe'... Per farlo con la ricorsione passando una sola variabile un modo c'e', ma non so quanto sia corretto:
codice:
/*
* Si compila con
* gcc -o palindromo palindromo.c
*/
#include <stdio.h>
#include <string.h>
#define DIM 128
#define RICORSIVA 0
//#define ITERATIVA 1
int palindromo ( const char * par );
int main ( )
{
char parola [ DIM ];
while ( 1 ) {
printf ( "Inserisci una parola, ti diro' se e' un palindromo. (\"exit\" per uscire).\n" );
scanf ( "%s", parola );
if ( ! strcmp ( parola, "exit" ) )
break;
if ( palindromo ( parola ) )
printf ( "\"%s\" e' un palindromo.\n", parola );
else
printf ( "\"%s\" non e' un palindromo.\n", parola );
}
return 0;
}
int palindromo ( const char * par )
{
#ifdef RICORSIVA
char * parola = strdup ( par );
int lunghezza = strlen(parola);
if ( *parola == '\0' || *(parola+1) == '\0' )
return 1;
if ( *parola != *(parola+lunghezza-1) ) {
return 0;
} else {
*parola = '\0';
*(parola+lunghezza-1) = '\0';
return palindromo ( parola + 1 );
}
#elif defined ITERATIVA
/* vabbe', e' facile... */
return 0;
#endif
}