Ir para conteúdo
Fórum Script Brasil
  • 0

Encontrar um nome dentro de um vetor


Sté

Pergunta

Boa tarde pessoal, faço programação I e não vou muito bem, sendo assim, tenho muitas duvidas. Em um exercício a professora pede para que há a entrada de 10 nomes e a sua leitura e armazene-os em um vetor de strings.

Apos a leitura, o programa devera ler um nome de consulta e pesquisar no vetor se esse nome está presente nesse vetor ou n~ao.

Se o nome estiver presente, a mensagem "Nome encontrado" deve ser exibida, senão "Nome não encontrado" sera mostrada ao usuario.

Pois bem, assim o fiz. No entanto, apos a saída do "while" n consigo 'encontrar' nome mesmo digitando um nome que esteja presente no vetor.

O codigo foi feito no codeblocks:

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main()
{
    char nome[10][50],busca[50];
    int i;
    for (i=0; i<10; i++)
    {
        printf("Digite um nome:\n");
        scanf("%s", nome[i]);
    }
    printf("Busque um nome:\n\n");
    scanf("%s",busca);
    while((i<10)&&(strcmp(nome[i],busca!=0)))
    {
        i++;
    }if(i<10)
    {
        printf("O nome foi encontrado");
    }else
    {
        printf("O nome não foi encontrado");
    }
    return 0;
}

Agradeço muito a qm ajudar, n peço a resposta em si, mas uma ajuda em encontrar o erro. Obrigada pessoal :)

Link para o comentário
Compartilhar em outros sites

5 respostass a esta questão

Posts Recomendados

  • 0

Use gets(); para ler a string;

gets(nome); por exemplo

use mais uma variável res que indica o numero de resultados.

int res = 0;

Use um for para achar o nome;

for(i = 0; i < 10; i++);
{
     if(!strcmp(nome[i], busca)// se for igual
          res++; // incrementa a resultados
}

printf("A busca encontrou %d resultado(s)", res);

Editado por Dan Oliveira
Link para o comentário
Compartilhar em outros sites

  • 0

Você também está se esquecendo que deve usar o & no scanf. Assim:

printf("Busque um nome:\n\n");
    scanf("%s",&busca);

Mas como o colega disse, use gets para o array de chars.

Att.,

Pedro

Link para o comentário
Compartilhar em outros sites

  • 0
Você também está se esquecendo que deve usar o & no scanf. Assim:

printf("Busque um nome:\n\n");
    scanf("%s",&busca);
Mas como o colega disse, use gets para o array de chars. Att., Pedro
Quando se lê uma string o pŕoprio nome da string é o endereço para o primeiro elemento, ou seja não vai & antes do nome da variável.
//  busca   =    &busca[0];

scanf("%s",&busca);//errado
scanf("%s",busca);//certo
scanf("%s",&busca[0]);//certo

qualquer função que use string ou vetor, lembre o proprio nome já é um endereço para o primeiro elemento da estrutura

é por isso que fazemos

strcmp(string1, string2);

strcpy(string1,string2);

strcat(string1, string2);

e não

strcmp(&string1, &string2);

strcpy(&string1,&string2);

strcat(&string1, &string2);

Editado por Dan Oliveira
Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,3k
×
×
  • Criar Novo...