Duda funcion palindromo

Iniciado por cazagavilan, 9 Abril 2012, 09:55 AM

0 Miembros y 1 Visitante están viendo este tema.

cazagavilan

Hola de nuevo, tengo que hacer una funcion (bool palindromo(char palabra[40]))
que devuelva true si es un palindromo y false si no lo es, tambien debe evitar los espacios en blanco y no deve hacer distinciones entre mayusculas y minusculas.

De momento tengo esto pero la verdad es que no tengo ni idea de como seguir...
Código (cpp) [Seleccionar]
#include <iostream>
using namespace std;

char palabra[40];
char palindromo(char palabra[40])
{
for(int i = 0; palabra[i] != 0; i++)
{
if(palabra[i] != 32)
{
cout << palabra[i];
}
}
return 0;
}



int main()
{
char result;
cout << "Introduzca su frase o palabra: \n";
cin.getline(palabra, 40);

result = palindromo(palabra);
cout << result;
system("pause");
}


Char palindromo deve ser bool palindromo solo lo puse asi para comprobar que quita los espacios en blanco.

Muchas gracias!

satu

Hola

Código (cpp) [Seleccionar]

#include <iostream>
#include <cstring>
#include <cctype>

using namespace std;

bool palindromo(char palabra[40]) {
    int i,  j = strlen(palabra) - 1;
    for(i = 0; i < j; i++, j--) {
        while(palabra[i] == ' ') {
            i++;
        }
        while(palabra[j] == ' ') {
            j--;
        }
if(tolower(palabra[i]) != tolower(palabra[j])) {
            return false;
        }
    }
    return true;
}

int main()
{
    char palabra[40];
    cout << "texto:" << endl;
    cin.getline(palabra, 40);
    if(palindromo(palabra)) {
        cout << "Si es palindromo" << endl;
    } else {
        cout << "No es palindromo" << endl;
    }
    return 0;
}


Saludos
Breakbeat como forma de vida

cazagavilan

Muchas gracias, tenia una pequeña idea de como hacerlo pero no me funcionaba.