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...
#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!
Hola
#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
Muchas gracias, tenia una pequeña idea de como hacerlo pero no me funcionaba.