Ya lo tienes todo!.
Solo, en esta parte esta algo mal:
for(int k = 0; k<j; k++)
{
invert[k] = pop(&Tope);
}
if(strncmp (letra,invert,strlen(invert)) == 0) //strncmp (letra,invert,strlen(invert)) == 0 || strcmp(letra, invert) == 0
printf("Si es un palindromo\n");
else
printf("No es un palindromo\n");
---------------------------------------------------------------------------------------------
Tienes que evaluar tu frase inversa y la no inversa, si existe alguna letra que no concuerde con esto ya no es un palidromo, si todas las letras concidieron es palidromo, sustituye lo de arriba por algo asi:
char flag(1);
for(int k = 0; k<j; k++)
{
//Obtiene elemento de la pila
invert[k] = pop(&Tope);
//Compara la cadena puesta en pila VS la cadena original (sin espacios)
if(invert[k] != letra[k]){
flag='F';
}
}
Si flag = F no es un palidromo, en caso contrario es un palidromo.
Espero te pueda ayudar asi.
Solo, en esta parte esta algo mal:
for(int k = 0; k<j; k++)
{
invert[k] = pop(&Tope);
}
if(strncmp (letra,invert,strlen(invert)) == 0) //strncmp (letra,invert,strlen(invert)) == 0 || strcmp(letra, invert) == 0
printf("Si es un palindromo\n");
else
printf("No es un palindromo\n");
---------------------------------------------------------------------------------------------
Tienes que evaluar tu frase inversa y la no inversa, si existe alguna letra que no concuerde con esto ya no es un palidromo, si todas las letras concidieron es palidromo, sustituye lo de arriba por algo asi:
char flag(1);
for(int k = 0; k<j; k++)
{
//Obtiene elemento de la pila
invert[k] = pop(&Tope);
//Compara la cadena puesta en pila VS la cadena original (sin espacios)
if(invert[k] != letra[k]){
flag='F';
}
}
Si flag = F no es un palidromo, en caso contrario es un palidromo.
Espero te pueda ayudar asi.