Ir ao conteúdo

Posts recomendados

Postado

Bem galera, to fazendo uma atividade aqui, só que no exercício pede pra ser ignorados acentos e espaços, eu pensei em criar um do while, mas acho q n teria muito sentido...

Segue o exercício e o código atualmente.

1) (1,50) Um palíndromo é uma string que é soletrada da mesma forma da frente para trás ou de trás para a frente. Alguns exemplos de palíndromos são "radar" "orava o avaro" e "socorram marrocos". Escreva um programa que leia uma string e a armazene no array, depois verifica se a string armazenada é um palíndromo e informa ao usuário. Deve-se ignorar espaços e pontuação na string.

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

int main(void){

	char palavra[100],inverter[100];
	int i,j;
	int errada=0,aux=0;

	printf("Informe uma palavra: ");
	scanf("%s",palavra);

	aux= strlen(palavra);
	j= aux;
	aux++;
	j--;

	for(i=0;i<aux;i++){
	   inverter[i] = palavra[j];
	   j--;
	}

	aux--;

	for(i=0;i<aux;i++){
	   if(palavra[i] != inverter[i]){
	   	errada = 1;
	   }
	}

	if(errada == 1){
		printf("%s não é um palindromo.",palavra);
	}

	else{
		printf("\n%s é um palindromo.",palavra, inverter);
	}

	return 0;

}

 

  • Curtir 1
  • Obrigado 1
  • Membro VIP
Postado
3 horas atrás, Mauro Britivaldo disse:

Ao inverter, coloque estruturas de decisão que verifica quando o caractere atual  é indesejado antes de copiá-lo.

 

Acho que só isso não adiantaria. Talvez uma alternativa mais viável seria normalizar (acho que o termo é esse) a string antes mesmo de copiar.

 

Após obter a string:

  1. normaliza a string: remove os acentos (inclui "ç"); remove as pontuações; remove os espaços; torna tudo maiúsculo ou minúsculo etc;
  2. só aí faz uma cópia invertida;
  3. compara a string normalizada com a sua cópia.

 

Uma outra forma para verificar seria comparar as posições simétricas (também acho que o nome é esse), ou seja: vai verificando se o primeiro é igual ao último, se o segundo é igual ao penúltimo... etc. (Só precisa verificar até no máximo a metade dos caracteres.)

 

  • Curtir 1

Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...