Ir ao conteúdo
  • Cadastre-se
PimpolhoJack

C CodeFight - CheckPalindrome() em C

Recommended Posts

To tentando resolver a questão do site Code Signal, checkPalindrome( ), usando a linguagem C pois estou aprendendo estruturas de dados agora com essa linguagem e queria melhorar minha lógica de programação usando o site. Sei que usando Python ficaria muito mais fácil, assim como JavaScript também, mas preciso muito fazer em C. 

Não costumava programar com essa linguagem usando a biblioteca string.h, no máximo umas 3 vezes usei algo dela e agora estou perdido. Isso foi o que consegui fazer até agora, no site você só precisa desenvolver a função, a main não importa pra eles!

bool checkPalindrome(char *inputString) {
    
    char *string = (char*) malloc(sizeof(inputString));
    char letra;
    
    int ax=0;
    
    for(int i=strlen(inputString)-1;i<=0;i--){
        
        letra = inputString[i];
        string[ax]=letra;
        ax++;
        
    }
    
    if(*string == inputString){
        return true;
  	} else {
        return false;
   	}
    
    
}

 

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá tudo bem?

 

SizeOf só funciona no mesmo escopo que a referência da vetor, ou/e em objetos.

 

sizeof é o operador unário que determina o número de bytes dos tipos primitivos/derivados, de suas referências quando aplicado nos ponteiros e nas variáveis. É muito comum erro lógico ao usar esse operador, pois ele necessita da referência (original); que se encontra no mesmo escopo de declaração da variável, e precisa da desreferência de um objeto (uma implementação da linguagem por exemplo).

 

Assim sendo, nesta situação temos:

char *string = (char*) malloc(sizeof(inputString));

= é igual a:

char *string = (char*) malloc(4);

Trate-se de uma erro lógica que prejudica todo resto da implementação dependente desses comandos para funcionar  corretamente. Pois todo ponteiro em C tem o exatamente 4 bytes (sistemas 32 bits). Logo não preciso nem continuar.

 

O.k!? Até.

  • Curtir 1
  • Obrigado 1

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro 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 publicações 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

×