• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

AcidSphere

Dúvidas em arrrays e strings

4 mensagens neste tópico

Boas pessoal.

Eu tenho a seguinte dúvida, tenho este codigo

   
void localidade()
{
     int i=0;
     int a=0;
     char localidade1;
     char localidade[Y];
     printf("Insira a localidade que pretende procurar:");
     
     scanf("%s",&localidade1);
     while(dado[i].nome[0]!='\0')
     {
             if(dado[i].localidade==localidade1)
      {
                  printf ("Nome:%s",dado[i].nome);
                  printf ("Idade:%i\n",dado[i].idade);
                  printf ("Localidade:%s",dado[i].localidade);
                  printf ("Altura:%d\n\n",dado[i].altura);
                                        
          a++;
          i++;
      }
     i++;
     }
     printf("Total de registos encontrados para esta localidade: %d\n", a);
}
  

Mas dá me este erro: [Warning] comparison between pointer and integer.

O programa corre mas não faz a pesquisa como devia como posso solucionar este problema?

Cumprimentos

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

localidade1 é um caracter, localidade é um array de caracteres. No if estás a comparar duas coisas diferentes.

localidade1 também devia ser um array.

Já agora em C para comparares duas strings devias usar a função strcmp( array1, array2)

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

scanf("%s",&localidade1);

Sem contar que tas a tentar colocar uma string num caractére.

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Obrigado, penso que assim os problemas já estão resolvidos

void localidade()
{
     int i=0;
     int a=0;
     char localid[80];
     char localidade[Y];
     printf("Insira a localidade que pretende procurar:");
    

     scanf("%s",&localid[i]);
     
     
     while(dado[i].nome[0]!='\0')
     {
             if(strcmp (dado[i].localidade,localid) == 0)
      {
                  printf ("Nome:%s",dado[i].nome);
                  printf ("Idade:%i\n",dado[i].idade);
                  printf ("Localidade:%s",dado[i].localidade);
                  printf ("Altura:%d\n\n",dado[i].altura);
                                        
          a++;
          i++;
      }
     i++;
     }
     printf("Existem %d registos para esta Localidade\n", a);
}

O compilador já não dá qualquer erro más quando faço a pesquisa ele nunca encontra nenhuma Localidade que corresponda a que inseri.

Cumprimentos

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!


Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.


Entrar Agora