Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: cazagavilan en 9 Abril 2012, 09:55 am



Título: Duda funcion palindromo
Publicado por: cazagavilan en 9 Abril 2012, 09:55 am
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
  1. #include <iostream>
  2. using namespace std;
  3.  
  4. char palabra[40];
  5. char palindromo(char palabra[40])
  6. {
  7. for(int i = 0; palabra[i] != 0; i++)
  8. {
  9. if(palabra[i] != 32)
  10. {
  11. cout << palabra[i];
  12. }
  13. }
  14. return 0;
  15. }
  16.  
  17.  
  18.  
  19. int main()
  20. {
  21. char result;
  22. cout << "Introduzca su frase o palabra: \n";
  23. cin.getline(palabra, 40);
  24.  
  25. result = palindromo(palabra);
  26. cout << result;
  27. system("pause");
  28. }

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

Muchas gracias!


Título: Re: Duda funcion palindromo
Publicado por: satu en 9 Abril 2012, 13:35 pm
Hola

Código
  1. #include <iostream>
  2. #include <cstring>
  3. #include <cctype>
  4.  
  5. using namespace std;
  6.  
  7. bool palindromo(char palabra[40]) {
  8.    int i,  j = strlen(palabra) - 1;
  9.    for(i = 0; i < j; i++, j--) {
  10.        while(palabra[i] == ' ') {
  11.            i++;
  12.        }
  13.        while(palabra[j] == ' ') {
  14.            j--;
  15.        }
  16. if(tolower(palabra[i]) != tolower(palabra[j])) {
  17.            return false;
  18.        }
  19.    }
  20.    return true;
  21. }
  22.  
  23. int main()
  24. {
  25.    char palabra[40];
  26.    cout << "texto:" << endl;
  27.    cin.getline(palabra, 40);
  28.    if(palindromo(palabra)) {
  29.        cout << "Si es palindromo" << endl;
  30.    } else {
  31.        cout << "No es palindromo" << endl;
  32.    }
  33.    return 0;
  34. }
  35.  

Saludos


Título: Re: Duda funcion palindromo
Publicado por: cazagavilan en 9 Abril 2012, 16:07 pm
Muchas gracias, tenia una pequeña idea de como hacerlo pero no me funcionaba.