Programa que detecta si una frase ó palabra el palíndromo, C++..

Programa que detecta si una palabra ó frase es palíndromo, esta elaborado en C++..

# include <ctype.h>
# include <stdio.h>
# include <conio.h>
# include <wchar.h>
# include <string.h>
main()
{
char cad[40],cad2[40];
int i,n,m=0,p;
char *apu_car;
char *letra;
char *letraf;

printf(“\n PROGRAMA QUE DETECTA SI UNA CADENA ES UN PALINDROMO.\n”);
printf(“\n Ingrese palabra o frase:”);

gets(cad);
n=strlen(cad);
apu_car = cad;
letra= cad2;

for (i=0;i<n;i++)
{
// Si es una letra mayúscula la convierte en minúscula
if(*apu_car>=65 && *apu_car<=90)
{
*letra=tolower(*apu_car);
letra++;
apu_car++;
}
// Si es una letra minúscula simplemente la copia en la cadena2
else if(*apu_car>=97 && *apu_car<=122)
{
*letra=*apu_car;
letra++;
apu_car++;
}
else
{
//quita los acentos de minúsculas y mayúsculas
if(*apu_car==-96 || *apu_car==-75)
{
*letra=97;
letra++;
apu_car++;
}

else if(*apu_car==-126 || *apu_car==-112)
{
*letra=101;
letra++;
apu_car++;
}

else if(*apu_car==-95 || *apu_car==-42)
{
*letra=105;
letra++;
apu_car++;
}

else if(*apu_car==-94 || *apu_car==-32)
{
*letra=111;
letra++;
apu_car++;
}

else if(*apu_car==-93|| *apu_car==-23)
{
*letra=117;
letra++;
apu_car++;
}

//Caso especial para la ñ y Ñ
else if(*apu_car==-91|| *apu_car==-92)
{
*letra=164;
letra++;
apu_car++;
}

else
{
apu_car++;
m++;
}
}
}

letra=cad2;
printf(“\n\t”);
for (i=0;i<n-m;i++)
{
printf(“%c”,*letra);
letra++;
}

p=0;
letra=&cad2[0];
letraf=&cad2[(n-m)-1];

for (i=0;i<=(n-m);i++)
{

if (*letra==*letraf)
{
p++;
letra++;
letraf–;
}
else
{
letra++;
letraf–;
}
}

if (p==(n-m))

//Ahora nadamas imprime si la cadena es palindromo ó no lo es..

Espero te sirva para que elabores el tuyo..

by gisey euan

5 pensamientos en “Programa que detecta si una frase ó palabra el palíndromo, C++..

  1. Tu codigo ami no me funciono…
    pero considero q t la complicas mucho t dejo mi codigo para q revises ace lo mismo
    #include
    #include
    #include
    #include
    #include
    #include
    #include

    void sleep( clock_t wait ){
    clock_t goal;
    goal = wait + clock();
    while( goal > clock() );
    }

    int main(int argc, char *argv[]){
    int n;
    char palabra[25];
    int n1=-1,pm,p = 0;
    printf(“PROGRAMA QUE DETECTA SI UNA CADENA ES UN PALINDROMO\n\n\tIndique palabra : “);
    gets(palabra);
    n=strlen(palabra);
    printf(“La Palabra Ingresada Consta de %d caracter”,n);
    if (n > 1){
    printf(“es\n”);
    }
    else{
    printf(“\n”);
    }

    pm = n-1;
    n = n;
    for (int x = 0; x <= n; x++){

    if (palabra[p]== palabra[pm]){
    n1 = n1 + 1;
    }
    printf(“\n\n\t%c\t%c”,palabra[p],palabra[pm]);
    pm = pm – 1;
    p = p + 1;
    }
    printf(“\n\n\n%d\n\n\t”,n1);
    if (n1 == n){
    printf(“La palabra es palindroma\n\n\t”);
    }
    else{
    printf(“No es palindroma\n\n\t”);
    }
    system(“PAUSE”);
    return EXIT_SUCCESS;
    }

  2. me podrias ayudar?
    leer una sucesión de palabras de hasta 10 caractere, separadas por blancos (las palabras se leen cracter por caracter). todo el texto termina en un punto(el punto no es un carácter permitido en las palabras). se desea obtener, en primera instancia, cada palabra leida en forma invertida. por ejemplo si se lee “casa”, se imprime “asac”.
    si me podrias ayudar, muchas gracias, o algun consejo porfavor

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s