Bóson Treinamentos em Ciência e Tecnologia

Verificando se uma palavra é um palíndromo em linguagem C

Verificando se uma palavra é um palíndromo em linguagem C

Como verificar se uma palavra é um palíndromo em linguagem C

Neste tutorial de linguagem C vamos criar um pequeno programa que permite verificar se uma dada palavra, fornecida pelo usuário, é um palíndromo.

De acordo com a Wikipedia:

Um palíndromo é uma palavra, frase ou qualquer outra sequência de caracteres que tenha a propriedade de poder ser lida (de forma igual) tanto da direita para a esquerda como da esquerda para a direita. Num palíndromo, normalmente são desconsiderados os sinais ortográficos (diacríticos ou de pontuação), assim como o espaços entre palavras.

Ou seja, qualquer sequência de caracteres que seja a mesma se lida da esquerda para a direita ou da direita para a esquerda. Por exemplo, a palavra “osso” é um palíndromo, pois é idêntica não importa o sentido da leitura.

Para este algoritmo vamos fazer uso de algumas funções de manipulação de strings e importar bibliotecas específicas, como string.h e ctype.h. Vamos ao código.

Código

#include<stdio.h>
#include<string.h>
#include<locale.h>
#include <ctype.h>

int main() {
 setlocale(LC_ALL, "");
 int i, valor = 0;
 char palavra[15], inversa[15];

 printf("\nDigite uma palavra: ");
 gets(palavra);

 //Converter a palavra digitada para minúsculas
 for(i = 0; palavra[i]; i++){
   palavra[i] = tolower(palavra[i]);
 }

 //Copiar a palavra digitada para que seja invertida
 strcpy(inversa, palavra);

 //Inverter a palavra copiada
 strrev(inversa);

 valor = strcmp(palavra, inversa);

 if (valor == 0)
   printf("\nA palavra %s é palíndroma\n", palavra);
 else
   printf("\nA palavra %s não é palíndroma\n", palavra);

 return 0;
}

Crie um novo projeto em C e digite ou copie e cole o código anterior. Compile e execute o programa, fornecendo uma palavra como solicitado no console, e o programa retornará uma mensagem dizendo se a palavra é um palíndromo ou não, como ilustra a figura a seguir:

No meu exemplo, entre com a palavra “Mussum”, e o programa retornou a mensagem de que esta palavra é um palíndromo.

A seguir, vamos explicar sucintamente o funcionamento do código, assim como das funções empregadas em sua construção.

Funcionamento

Também é possível implementar esse programa sem a necessidade de usar a função strrev(), que não é padrão nas bibliotecas da linguagem C – em algumas implementações, ela pode não estar presente.

Nesse caso temos de criar nossa própria função para reversão da string, o que faremos na próxima lição.

Próximo: Criando função para inverter string e conferindo palíndromo em linguagem C

 

Sair da versão mobile