PedroCunha Postado Janeiro 16, 2013 Denunciar Share Postado Janeiro 16, 2013 Irei postar um código que, ao receber uma palavra ou frase, mostra se essa é um palíndromo (Palavra que pode ser lida de trás para frente com o mesmo resultado) ou não. Qualquer dúvida basta perguntar.#include <iostream> #include <cstring> #include <stdio.h> using namespace std; string Palavra = ""; string Palavra_Teste = ""; string TempPalavra = ""; bool Se_Palindromo = false; char Usar_denovo; void Perguntar_a_Palavra(string&); void Checar_por_simbolos(string&, string&); bool Checar_se_Palindromo(string&, string); void Mostrar_se_e_Palindromo(); void Perguntar_se_quer_usar_denovo(char); void Funcoes(); void Perguntar_a_Palavra(string& Palavra) { Palavra == ""; cin.sync(); cout << "\nDigite uma palavra (Não use acentos por favor)" << endl; getline(cin, Palavra); } void Checar_por_simbolos(string& Palavra, string& TempPalavra) { TempPalavra = Palavra; for (unsigned int h = 0; h < Palavra.length(); h++) { for (unsigned int i = 0; i < Palavra.length(); i++) { if (Palavra[i] >= 48 || Palavra[i] == 49 || Palavra[i] == 50 || Palavra[i] == 51 || Palavra[i] == 52 || Palavra[i] == 53 || Palavra[i] == 54 || Palavra[i] == 55 || Palavra[i] == 56 || Palavra[i] == 57 || (Palavra[i] > 64 && Palavra[i] < 91) || (Palavra[i] > 96 && Palavra[i] < 123) || (Palavra[i] > 127 && Palavra[i] < 155) || (Palavra[i] > 159 && Palavra[i] < 166)) { } else { Palavra.erase(i,1); } } } for (unsigned int j = 0; j < Palavra.length(); j++) { Palavra[j] = toupper(Palavra[j]); } } bool Checar_se_Palindromo(string& Palavra, string Palavra_Teste) { int i, j; int Palavra_Size = Palavra.length(); if (Palavra != "") { for (i = Palavra_Size - 1, j = 0; i >= 0;i-- , j++) { Palavra_Teste[j] = Palavra[i]; } Palavra_Teste[Palavra_Size] = ''; if (strcmp(Palavra_Teste.c_str(), Palavra.c_str()) == 0) { Se_Palindromo = true; } else Se_Palindromo = false; Palavra = TempPalavra; } else Se_Palindromo = false; return Se_Palindromo; } void Mostrar_se_e_Palindromo() { cout << "\n"; cout << "Frase: " << Palavra << endl; cout << "Palíndromo:"; if (Se_Palindromo == false) { cout << " Não" << endl << endl; } else { cout << " Sim" << endl << endl; } } void Funcoes() { Perguntar_a_Palavra(Palavra); Checar_por_simbolos(Palavra, TempPalavra); Checar_se_Palindromo(Palavra, Palavra_Teste); Mostrar_se_e_Palindromo(); Perguntar_se_quer_usar_denovo(Usar_denovo); } void Perguntar_se_quer_usar_denovo(char Usar_denovo) { cout << "\nDeseja usar o programa denovo? (S / N)" << endl; if (! (cin >> Usar_denovo)) { cin.clear(); cin.sync(); cout << "Opção inválida." << endl << endl; Perguntar_se_quer_usar_denovo(Usar_denovo); } switch (Usar_denovo) { case 'S': {Funcoes(); break;} case 's': {Funcoes(); break;} case 'N': {cout << "\nAdeus" << endl; break;} case 'n': {cout << "\nAdeus" << endl; break;} default:{ cout << "Opção inválida. Tente novamente." << endl; cin.sync(); Perguntar_se_quer_usar_denovo(Usar_denovo); break; } } } int main() { setlocale(LC_ALL, "Portuguese"); Funcoes(); cin.get(); return 0; }Att.,Pedro Citar Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
PedroCunha
Irei postar um código que, ao receber uma palavra ou frase, mostra se essa é um palíndromo (Palavra que pode ser lida de trás para frente com o mesmo resultado) ou não. Qualquer dúvida basta perguntar.
Att.,
Pedro
Link para o comentário
Compartilhar em outros sites
0 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.