|
/* Leer por teclado una cadena de caracteres, e
indicar si es o no un palíndromo (se puede leer tanto de izquierda a derecha,
como de derecha a izquierda).
Ej: Dabale arroz a la zorra el abad */
#include<stdio.h>
#include<string.h>
#include<ctype.h>
void quitar_blancos(char[]);
int palindromo(char[]);
void main()
{
char cad[80];
printf("Cadena:");
gets(cad);
quitar_blancos(cad);
if(palindromo(cad)) printf("\nLa cadena leída es un palíndromo.");
else printf("\nLa cadena leída NO es un palíndromo.");
}
void quitar_blancos(char cad[])
{
char a[80];
int i,c=0;
for(i=0;i<strlen(cad);i++)
if(!isspace(cad[i])) { a[c]=cad[i]; c++; }
a[c]='\0';
strcpy(cad,a);
return;
}
int palindromo(char cad[])
{
// Se puede hacer de cualquiera de las dos maneras siguientes...
// int i,k=strlen(cad)-1;
// for(i=0;i<k;i++,k--)
// if(cad[i]!=cad[k]) return 0;
char a[80];
strcpy(a,cad);
strrev(a); // Sirve para darle la vuelta a una cadena.
if(strcmp(cad,a)) return 0;
else return 1;
}
d
VOLVER
|