Ir ao conteúdo

Como fazer busca de nome(string) na array?


jeanzera

Posts recomendados

Postado

Ola a todos, gostaria de saber como buscar informações dentro de uma array e mostra-las , ex.

tenho cadastrado nomes de alunos, e nomes de seus pais, gostaria de buscar os nomes dos pais, e se esses pais tivessem mesmo nome, conseguisse mostrar onde estão na array.

Obrigado!

Postado

primeiro, ponha um pedaço do código para podermos analisar sua lógica. mas creio(meio em dúvida) que array list em C seria Vetores.

se for

vou te dar a lógica. a programação é com você

primeiro, faça o programa ler uma variavel.

começe um FOR

e dentor desse for, faça um if comparando se o nome digitado é igual ao do vetor.

se for igual. mostra o nome ea posição.

Ex.



printf("Informe o nome a ser buscado");
gets(nome);

for(i=0;i<10;i++)
{
if(nome == vetor_nome[i])
{
printf("Posicao: %d Nome: %s",i,vetor_nome[i]);
}
}

dai caso voce queira retornar uma mensagem caso não tenha encontrado, faça um esquema de FLAG.

Atribula uma variavel inteira (preferência)

int FLAG = 0;

e no IF acima, caso ele encontre. a variavel FLAG recebe 1.



printf("Informe o nome a ser buscado");
gets(nome);

for(i=0;i<10;i++)
{
if(nome == vetor_nome[i])
{
printf("Nome repetido!);
getch();
printf("Posicao: %d Nome: %s",i,vetor_nome[i]);
FLAG =1;
}
}


if (FLAG == 0)
{
printf("Nome nao repete");
}

tente assim.

Postado

Ola sylerr, bom, veja se consegue entender minha logica , uma parte do codigo

o ex no qual estou fazendo é o seguinte:

As funcionalidades esperadas do programa são:

a) Cadastrar 10 alunos em um array. Os campos a serem cadastrados para

cada aluno são nome (string), endereço (string), nome do pai (string) e

nome da mãe (string).

B) Após o cadastro, deverá ser lido do teclado o nome do novo aluno,

assim também como os nomes de seu pai e de sua mãe.

c) Feita esta leitura, deverá ser efetuada uma busca no array para se

descobrir a quantidade de irmãos matriculados que este novo aluno

possui. Assume-se que são irmãos aqueles que possuem os mesmos pai e

mãe, ou seja, aqueles cujos nomes do pai e da mãe são exatamente iguais.

d) Terminada a busca no array, o programa deverá imprimir um número

que represente a porcentagem de desconto à qual o novo aluno tem

direito.

como viu, estou na letra c, e seguindo a logica do ex, nao sei como buscar os nomes dos pais aleatorio,

printf("\t\t----------Informe o cadastro de 10 alunos---------- \n\n") ;
for(i=1;i<11;i++){
printf("\n\nNome aluno %d: ", i);
fflush(stdin);
fgets(aluno[i].nome, 30, stdin);
printf("\nEndereco: ");
fflush(stdin);
fgets(aluno[i].endereco, 50, stdin);
printf("\nNome do Pai: ");
fflush(stdin);
fgets(aluno[i].nomepai, 30, stdin);
printf("\nNome da Mae: ");
fflush(stdin);
fgets(aluno[i].nomemae, 30, stdin);
}

printf("\n\nSelecione o numero do aluno desejado: \n\n");
scanf("%d",&n);
vetor[i] = n ;
if (n == n);
printf("\t\tNome do Aluno : %s\n\n\t\tNome do Pai: %s\n\n\t\tNome da Mae: %s \n\n", aluno[i].nome, aluno[i].nomepai, aluno[i].nomemae);
for(i=0;i<11;i++){
if(nomepai[i]=="jose")
return i;
}

Enfim, qualquer opiniao é so falar, e muito obrigado por responder!

ignore a parte final if, estava tentando pensar em algo ...

Postado

um DÚVIDA, voce vai cadastrar 10, OK?

e depois cadastrar outro aluno e compara com esses 10?

se for assim...

faça essa lógica...

informar os dados (nome,nomepai,nomemae, etc etc)

ler esses dados.

comparar.

apos ter cadastrado,

e faça um IF dentro de um for.

exemplo.



char nome
char nome_pai
char nome_mae

o tamanho nao interessa, é apenas apra exemplo.

agora faça um for para percorrer tudo.


for(i=1;i<11;i++)
{
if(nomepai == sua_array[i].nomepai && nomemae == sua_array[i].nomeMae)
{
//resultado que voce quer.
}
}

tente assim nessa parte de busca do seu código.

Postado

Muito boa a dica Sylerr,

a respeito da minha logica , eu cadastro 10, e ele vai imprimindo na tela na hora de cadastro com um numero, depois usa-se esse numero para consultar os pais que estão na mesma posicao ...

essa parte consegui, estou mostrando eles, porém, surgiu outra duvida,

ex.

Cadastrei aluno 1 , nome_pai = jose, nome_mae= maria, e no aluno 2 os mesmos pais.

como posso fazer para o programar contar que teria mais de um pai e mae com mesmo nome cadastrado ?

Postado

não tive tempo de testar direito, fiz em c++. Parece que ficou bom do jeito que você queria testa ai?? falou.


#include <stdio.h>
#include <string.h>
int main(){
// varaivveis
char aluno[11][30], endereco[11][50], nomepai[11][30], nomemae[11][30];
int i, j, k;

//cadastro
for(i=1;i<11;i++){
printf("\n\nNome aluno %d: ", i);
fflush(stdin);
scanf("%[^\n]", &aluno[i],30);
printf("\nEndereco: ");
fflush(stdin);
scanf("%[^\n]", &endereco[i],50);
printf("\nNome do Pai: ");
fflush(stdin);
scanf("%[^\n]", &nomepai[i],30);
printf("\nNome da Mae: ");
fflush(stdin);
scanf("%[^\n]", &nomemae[i],30);
}

//pesquisa
for(i=0;i<11;)
{
printf("\n\nSelecione o numero do aluno desejado: \n\n");
fflush(stdin);
scanf("%d",&i);
j = 0;
k = -1;
while (j<11){
if ((!strcmp(nomemae[i], nomemae[j])) || (!strcmp(nomepai[i], nomepai[j])))
k++;
j++;
}
printf("Nome : %s \nMae : %s",aluno[i], nomemae[i]);
if (k>0)
{
printf("\nTotal de Irmaos : %i",k);
}
else
{
printf("\nNao possui irmão");
}
}
return 0;
}


  • Moderador
Postado

Caso o autor do tópico necessite, o mesmo será reaberto, para isso deverá entrar em contato com a moderação solicitando o desbloqueio.

Arquivado

Este tópico foi arquivado e está fechado para 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...

GRÁTIS: ebook Redes Wi-Fi – 2ª Edição

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!