Função em C para palíndromos

Escrito por g.s. jackson | Traduzido por cezar rosa
  • Compartilhar
  • Tweetar
  • Compartilhar
  • Pin
  • E-mail
Função em C para palíndromos
Reverter e comparar strings é uma forma de verificar palíndromos no C++ (Ablestock.com/AbleStock.com/Getty Images)

Palíndromos são frases ou palavras que são lidas da mesma forma para a frente e para trás. Embora o ser humano possa simplesmente ler a frase para verificar se é ou não um palíndromo, um programa de computador tem de verificar a frase invertida e fazer comparações com base no valor de cada versão. Em seguida, o programa pode decidir se a frase é um palíndromo.

Outras pessoas estão lendo

Modelo para a função palíndromo

Uma função básica para verificação de palíndromo pode receber uma frase como argumento e verificar se ela pode ser lida para a frente e para trás:

bool verificaPalindromo(string frase)

Esta função retorna um valor booleano, o que significa que ela irá retornar um valor verdadeiro ou falso, dependendo se a frase passou ou não no teste palíndromo.

Invertendo a frase

Dentro da função, tem de haver uma forma de inverter a frase. Um programador poderia fazer isso lendo-a em sentido inverso e armazenando-a em outra variável string:

string novaFrase; int i = (int)frase.length() - 1;

for (i; i >=0; i--) { novaFrase.append(frase[i]); }

Apesar de não ser, talvez, o método mais eficiente, este laço mostra claramente o que está acontecendo: ele começa no final da frase e a lê em sentido inverso, acrescentando cada caractere em novaFrase.

Verificando o palíndromo

Operadores de string em C++ incluem os de comparação (maior que, menor que, igual a). Isto significa que as strings podem ser comparadas de forma semelhante aos valores numéricos. Portanto, se o valor da string que entrou é "radar", então o laço irá inverter a palavra e armazená-la na variável novaFrase. Em seguida, uma comparação simples entre as variáveis:

if(frase == novaFrase)

irá retornar "true" (verdadeiro) porque ambas as variáveis ​​de string contêm a palavra "radar".

Limitações

A comparação de string só funciona em strings que são idênticas. Se um palíndromo não é totalmente igual frente e verso (como a frase "A base do teto desaba"), então a comparação falhará mesmo se a frase for um palíndromo. Descobrir palíndromos requer analisar frases e compará-las caractere por caractere, em busca de padrões de palavras na frase invertida, em vez de uma comparação direta.

Não perca

Filtro:
  • Geral
  • Artigos
  • Slides
  • Vídeos
Mostrar:
  • Mais relevantes
  • Mais lidos
  • Mais recentes

Nenhum artigo disponível

Nenhum slide disponível

Nenhum vídeo disponível