Palíndromos em C ANSI

Nunca esqueço de uma prova de Programação I, do 2º semestre da faculdade, onde uma das questões consistia em fazer uma função que verificasse se a palavra passada por referência é um palíndromo, uma palavra que pode ser lida tanto da esquerda para a direita, quanto da direita para a esquerda. Lembro que não fui bem sucedido na época (rsrs), mas tá ai a dita função, escrita em C ANSI.

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

int ehPalindromo(char *string){
	char *s2 = string + strlen(string) - 1;
	if(!*string)
		return 1;
	while(*string++ == *s2-- && *string);
	return !*string && *(--string) == *(++s2);
}

int main(){
	char string[255];

	printf("Palavra: ");
	gets(string);
	printf("%s \n", ehPalindromo(string) ? "Eh palindromo" : "Nao eh palindromo");

	return(0);
}

C é uma linguagem que muitos odeiam, mas é muito comum pra quem desenvolve para Linux.
Abraço e até a próxima.

2 comentários para “Palíndromos em C ANSI”

  1. Marcel disse:

    Vlw pela informação. Me ajudou muito.

  2. Yuri disse:

    Cara, muito bom, me lembro que em algoritmos 1 na faculdade tive essa questão :)

    Parabéns pelo teu site

    Grande abraço

Comente você também

* Copie este código:

* Cole ou digite o código aqui:

Google