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

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.