Jump to content
AcidSphere

Dúvidas em arrrays e strings

Recommended Posts

AcidSphere

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

Share this post


Link to post
Share on other sites
merlin3000

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)


Criar é Divertido

Share this post


Link to post
Share on other sites
VictorCacciari

scanf("%s",&localidade1);

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


"#define QUESTION ((bb) || !(bb))" —— Shakespeare"Para obter a resposta certa, é preciso fazer a PERGUNTA CERTA." —— Albert Einstein

Share this post


Link to post
Share on other sites
AcidSphere

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

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.