Exercício resolvido - Faça um programa que leia uma string do teclado...

20/10/2013 13:03

Faça um programa que leia uma string do teclado e diga se ela é palíndrome. Uma string é palíndrome quando pode ser lida tanto de trás pra frente quanto de frente para trás e possui exatamente a mesma seqüência de caracteres. Ex.: ASA, SUBI NO ONIBUS. Desconsidere os espaços. Defina uma função chamada Palindrome que receba uma string como parâmetro e retorne um boolean no seu programa.

Solução:
//Erick Vivan
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int PALINDROME(char str[], char str2[], int i, int tam);//Protótipo
int ELIMINAR_ESPACO(char str[])
{
      char str2[100];
      int i, tam, j;
      tam = strlen(str);
      for(i = 0; i < tam; i++)//Eliminar espaço em branco
      {
            if(str[i] == ' ')
                for(j = i; j < tam; j++)
                     str[j] = str[j+1];    
      }
      tam = strlen(str);
      for(i = 0; i < tam; i++)
           str2[i] = str[tam - i - 1];
      str2[tam] = '\0';
      printf("\nString digitada: %s", str);
      printf("\nString invertida: %s\n\n", str2);
      return(PALINDROME(str, str2, i, tam));
}
int PALINDROME(char str[], char str2[], int i, int tam)
{
      for(i = 0; i < tam; i++)
      {
            if(str[i] != str2[i])
                return(0);
      }
      return(1);
}
main()
{
      char str[100];
      int result;
      printf(":::Verificacao de palindromos:::\n\n");
      printf("Digite algo: ");
      gets(str);
      result = ELIMINAR_ESPACO(str);
      if(result == 0)
           printf("\nA string digitada NAO eh um palindromo!\n\n\n");
      else
           printf("\nA string digitada eh um palindromo!\n\n\n");
      system("pause");
}