Jump to content
satbr

Erro ao verificar se string introduzida pelo utilizador já existe num vetor de estruturas

Recommended Posts

satbr

Boa tarde,

Estou aqui com uma dúvida que não estou a conseguir ultrapassar e já tentei de várias maneiras. Estou a fazer um programa que entre outras coisas o utilizador tem que inserir dados sobre um produto em que o número de série tem que ser único e do tipo char. Ou seja é introduzida uma string e tenho que verificar se essa string já existe na estrutura de vetores. O que está a acontecer é que quando introduzo o número de série do 1º produto o programadiz que já existe um produto com esse numero de série apesar de ser o 1º que estou a registar.

Eis o código que tenho:

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

typedef struct
{
   char numeroserie;
   char descricao;
   float preco;
} stProduto;
/********************** Funcoes dos produtos *************************/
void inserirProduto(stProduto produtos[], int *contadorProdutos);
int procurarNumeroserie(stProduto produtos[], int contadorProdutos, char produtoAProcurar);

int main()
{
   stProduto produtos[500];
   int contadorProdutos=0;
   inserirProduto(produtos,&contadorProdutos);
   return 0;
}
void inserirProduto(stProduto produtos[], int *contadorProdutos)
{
   char string1;
   char posicao;
   do
   {
       printf("Introduza o numero de serie do produto:");
       scanf("%s",&string1);
       posicao =  procurarNumeroserie(produtos,*contadorProdutos, string1);
       if (posicao == 0)
       {
           printf("Ja existe um produto com esse numero de serie!!!\n");
       }
   }
   while(posicao == 0);
   strcpy(produtos[*contadorProdutos].numeroserie,string1);
   (*contadorProdutos)++;
}
int procurarNumeroserie(stProduto produtos[], int contadorProdutos, char produtoAProcurar)
{
  int i;
   char posicao;
   posicao = 0;
   for(i = 0 ; i < contadorProdutos ; i++)
   {
       if (strcmp(produtos[i].numeroserie, produtoAProcurar) == 0)
       {
           posicao=i;
           i=contadorProdutos;
       }
   }
   return posicao;
}

Alguém me pode ajudar por favor!! É que já estou a ficar desesperado.

Desde já o meu obrigado.

Edited by thoga31
GeSHi

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.


×
×
  • 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.