Ir ao conteúdo
  • Cadastre-se

Implementar uma função de pesquisar em agenda (struct)


iLoveProg
Ir à solução Resolvido por 1freakday,

Posts recomendados

É o seguinte pessoal, eu to fazendo uma agende (bem arcaica, por sinal, mas que pelo menos funcione) com struct, e preciso colocar uma função para pesquisar nomes, mas eu n estou conseguindo. O meu codigo ainda falta implementar mais coisas, alem da função PesquisarNomes, mas eu ja empaquei nessa primeira função. Deem uma olhada.

#include<stdio.h>
#include<stdlib.h>
#include<string.h>
void pesquisarnome(char *pessoas, int tam);

typedef struct{
	char nome[15];
	char email[25];
	char endrua[100];
	int endnumero;
	char endcompl[10];
	char endbairro[10];
	int endcep;
	int tel;
	int datadia;
	int datames;
	int dataano;
	char obs[15];
} Agenda;


int main(){

	int tam = 2;
	Agenda pessoas[tam];
	int op;
	int i;

	
	printf("Cadastrar:\n\nEx de cadastro: Nome(Joao), email, endereço rua, numero, bairro, cep, complemento, telefone, dia do aniversario, mes do aniversario, ano do aniversario, observação");
	for(i=0;i<2;i++){
		scanf("%s %s %s %d %s %d %s %d %d %d %d %s", &pessoas[i].nome, &pessoas[i].email, &pessoas[i].endrua, &pessoas[i].endnumero, &pessoas[i].endbairro, &pessoas[i].endcep, &pessoas[i].endcompl, &pessoas[i].tel, &pessoas[i].datadia, &pessoas[i].datames, &pessoas[i].dataano, &pessoas[i].obs);
	}
	for(i=0;i<2;i++){
		printf("\n\nCADASTRO(%d):\n\nNOME: %s\nEMAIL: %s\nRUA: %s\nNUMERO: %d\nBAIRRO: %s\nCEP: %d\nCOMPL.: %s\nTEL: %d\nDATA DIA: %d\nDATA MES: %d\nDATA ANO: %d\nOBSERVACAO: %s\n\n\n", i+1, pessoas[i].nome, pessoas[i].email, pessoas[i].endrua, pessoas[i].endnumero, pessoas[i].endbairro, pessoas[i].endcep, pessoas[i].endcompl, pessoas[i].tel, pessoas[i].datadia, pessoas[i].datames, pessoas[i].dataano, pessoas[i].obs);
	}
	printf("$$$$$$$$$$$$$$$$$$$$$$$ A G E N D A $$$$$$$$$$$$$$$$$$$$$$$$$\n\n\n\n");
	printf("MENU: Escolha uma opcao:\n\nPesquisar Nome (1) \n\nPesquisar Mes de Aniversario(2)\n\nNomes e Tels (3)\n\n");
	scanf("%d", &op);
	
		switch(op){
		case 1: pesquisarnome(pessoas, tam);
		break;
		
	
		
	}


 return 0;
}

void pesquisarnome(char *pessoas, int tam){


	int i;
	char x[50];
	
	
	printf("\nNome: ");
  	scanf("%s",&x);
	
		 for(i=0;i<tam;i++){
		 	
        if(strcmp(x, pessoas)==0){
        	printf("%s", pessoas);
		}
	}
	return 0;
}
        

 

Link para o comentário
Compartilhar em outros sites

  • Solução
#include<stdio.h>
#include<stdlib.h>
#include<string.h>

typedef struct{
	char nome[15];
	char email[25];
	char endrua[100];
	int endnumero;
	char endcompl[10];
	char endbairro[10];
	int endcep;
	int tel;
	int datadia;
	int datames;
	int dataano;
	char obs[15];
} Agenda;

void pesquisarnome(Agenda *, int);

int main(){

	int tam = 2;
	Agenda pessoas[tam];
	int op;
	int i;


	printf("Cadastrar:\n\nEx de cadastro: Nome(Joao), email, endereço rua, numero, bairro, cep, complemento, telefone, dia do aniversario, mes do aniversario, ano do aniversario, observação");
	for(i=0;i<2;i++){
		scanf("%s %s %s %d %s %d %s %d %d %d %d %s", pessoas[i].nome, pessoas[i].email, pessoas[i].endrua, &pessoas[i].endnumero, pessoas[i].endbairro, &pessoas[i].endcep, pessoas[i].endcompl, &pessoas[i].tel, &pessoas[i].datadia, &pessoas[i].datames, &pessoas[i].dataano, pessoas[i].obs);
	}
	for(i=0;i<2;i++){
		printf("\n\nCADASTRO(%d):\n\nNOME: %s\nEMAIL: %s\nRUA: %s\nNUMERO: %d\nBAIRRO: %s\nCEP: %d\nCOMPL.: %s\nTEL: %d\nDATA DIA: %d\nDATA MES: %d\nDATA ANO: %d\nOBSERVACAO: %s\n\n\n", i+1, pessoas[i].nome, pessoas[i].email, pessoas[i].endrua, pessoas[i].endnumero, pessoas[i].endbairro, pessoas[i].endcep, pessoas[i].endcompl, pessoas[i].tel, pessoas[i].datadia, pessoas[i].datames, pessoas[i].dataano, pessoas[i].obs);
	}
	while(1){
	printf("$$$$$$$$$$$$$$$$$$$$$$$ A G E N D A $$$$$$$$$$$$$$$$$$$$$$$$$\n\n\n\n");
	printf("MENU: Escolha uma opcao:\n\nPesquisar Nome (1) \n\nPesquisar Mes de Aniversario(2)\n\nNomes e Tels (3)\n\n");
	scanf("%d", &op);

		switch(op){
            case 1: pesquisarnome(pessoas, tam);
            break;
            default:
            break;
        }
	}

 return 0;
}

void pesquisarnome(Agenda *pessoas, int tam){


	int i;
	char x[50];


	printf("\nNome: ");
  	scanf("%s",x);//<-- char ja envia o endereco, nao precisa de &

    for(i=0;i<tam;i++){
        if(strcmp(x, pessoas[i].nome)==0){ //<-- observe o uso de [i] e .
        	printf("%s", pessoas[i].nome);
		}
	}
	return;
}

 

Link para o comentário
Compartilhar em outros sites

Visitante
Este tópico está impedido de receber novas respostas.

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades 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

×
×
  • Criar novo...