Buenas noches, agradecería si me ayudaran con mi código, por favor, ya que sólo me dice si una palabra es palíndromo pero si introduzco una frase, no funciona. Mi profesora me dijo que con el valor de N, ya sin los espacios, tenía que hacer el bucle (con for) y comparar cad[0] con cad[N-1]; cad[1] con cad[N-2] y así hasta llegar a cuando N es igual a la mitad de la cadena, pero creo que no supe como hacerlo. Este es mi código:
MOD: Etiqueta GeSHi
Código (c) [Seleccionar]
#include <stdio.h>
#include <conio.h>
#include <string.h>
#define L 50
void LEER_CADENA(char []);
void VER_CADENA(char []);
void QUITAR_ESPACIOS(char [], char []);
void PALINDROMO (char[], char[]);
int main(){
char CAD[L];
char CADNUEVA[L];
int CON;
LEER_CADENA(CAD);
QUITAR_ESPACIOS(CAD,CADNUEVA);
VER_CADENA(CADNUEVA);
PALINDROMO(CAD,CADNUEVA);
getch();
}
void LEER_CADENA(char cad[]){
printf("Ingresa la cadena: ");
gets(cad);
}
void VER_CADENA(char cadnueva[]){
printf("\nLa cadena ingresada es: %s",cadnueva);
}
void QUITAR_ESPACIOS(char cad[], char cadnueva[]){
int i,j,n;
i=0;
j=0;
n=strlen(cad);
for(i=0;i<n;i++){
if(cad[i]!=' '){
cadnueva[j]=cad[i];
j=j+1;
}
}
}
void PALINDROMO(char cad[], char cadnueva[]){
int i,m,n;
i=0;
m=0;
int cont=0;
n=strlen(cad);
for(i=0;i<n/2;i++){
if(cad[i]!=cadnueva[m]){
cont++;}
if(cad[i]!=cadnueva[m]){
cont++;}
if(cad[i]!=cadnueva[m]){
cont++;}
}
if(cont==0) printf("\n\nEs un palindromo.\n");
else printf("\n\nNo es un palindromo.\n");
}
MOD: Etiqueta GeSHi