Ir ao conteúdo

Pdrodrigs

Membro Júnior
  • Posts

    2
  • Cadastrado em

  • Última visita

Reputação

0
  1. Então, eu queria poder pesquisar ou pelo nome completo ou por algumas palavras, exemplo, escrever Leo e encontrar o cadastro do Leonardo, eu estava usando a função strstr mas ela só encontrava a palavra completa, me falaram pra usar a strpbrk, e deu certo, mas teve esse problema de só mostrar o primeiro cadastro.
  2. Oi, pessoal, boa tarde! Estou começando a programar em C, estou em dúvida nisso: Estou criando um sistema de cadastro de alunos em C, o problema é na parte de pesquisar aluno. Exemplo, se eu cadastrar 2 alunos, Leonardo e Juliana, quando eu for pesquisar pela Juliana que foi a segunda cadastrada, Sempre vem o cadastro do Leonardo, pois ele foi o primeiro que eu cadastrei. esse é o código: #include <stdio.h> #include <string.h> #define MAX_ALUNOS 50 typedef struct { char nome[50], sobrenome[50], curso[10], email[100], cpf[11], ra[9]; int ativo; } Aluno; Aluno alunos[MAX_ALUNOS]; void menu(); void cadastrar(); void remover(); void pesquisar(); void listar(); int main(int argc, char const *argv[]) { menu(); return 0; } void menu() { system("clear"); int op; do { printf("SISTEMA CADASTRO\n"); printf("1- cadastrar aluno\n2- remover aluno\n3- pesquisar aluno\n4- Listar alunos\n0- sair\n"); scanf("%d", &op); getchar(); switch (op) { case 1: cadastrar(); break; case 3: pesquisar(); break; case 4: listar(); break; } getchar(); } while (op != 0); } void cadastrar() { char nome[50], sobrenome[50], curso[10], email[100], cpf[12], ra[12]; int op; do { system("clear"); printf("CADASTRAR NOVO ALUNO\n"); printf("Nome: "); fgets(nome, sizeof(nome), stdin); printf("Sobrenome: "); fgets(sobrenome, sizeof(sobrenome), stdin); printf("RA: "); fgets(ra, sizeof(ra), stdin); printf("Email: "); fgets(email, sizeof(email), stdin); printf("Curso (Ex: TADS, ENG, BIOMED, etc): "); fgets(curso, sizeof(curso), stdin); printf("CPF: "); fgets(cpf, sizeof(cpf), stdin); printf("\n1 - continuar\n0 - sair\n"); for (int i = 0; i < MAX_ALUNOS; ++i) { if (alunos[i].ativo == 0) { strcpy(alunos[i].nome, nome); strcpy(alunos[i].sobrenome, sobrenome); strcpy(alunos[i].ra, ra); strcpy(alunos[i].email, email); strcpy(alunos[i].curso, curso); strcpy(alunos[i].cpf, cpf); alunos[i].ativo = 1; break; } } scanf("%d", &op); } while (op != 0); getchar(); } void remover() { } void pesquisar() { system("clear"); char nome[50], sobrenome[50], curso[10], email[100], cpf[12], ra[12]; printf("Digite o nome do aluno para pesquisar: "); fgets(nome, sizeof(nome), stdin); for (int i = 0; i < MAX_ALUNOS; ++i) { if (strpbrk(alunos[i].nome, nome) != NULL) { printf("\nNome: %s", alunos[i].nome); printf("Sobrenome: %s", alunos[i].sobrenome); printf("RA: %s", alunos[i].ra); printf("Email: %s", alunos[i].email); printf("Curso: %s", alunos[i].curso); printf("CPF: %s", alunos[i].cpf); printf("-----------------------\n"); } else { printf("NENHUM ALUNO ENCONTRADO"); } break; } } void listar() { system("clear"); printf("LISTA DE ALUNOS\n"); for (int i = 0; i < MAX_ALUNOS; ++i) { if (alunos[i].ativo == 1) { printf("\n-----------------------\n"); printf("Nome: %s", alunos[i].nome); printf("Sobrenome: %s", alunos[i].sobrenome); printf("RA: %s", alunos[i].ra); printf("Email: %s", alunos[i].email); printf("Curso: %s", alunos[i].curso); printf("CPF: %s", alunos[i].cpf); printf("\n-----------------------\n"); } } } Fico no aguardo da ajuda de vocês... Abraço!

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

LANÇAMENTO!

eletronica2025-popup.jpg


CLIQUE AQUI E BAIXE AGORA MESMO!