Ir ao conteúdo
  • Cadastre-se

C problema procurar um nome no vetor


Mpixell

Posts recomendados

Eu estou a tentar fazer um programa que peça 5 nomes, e os armazene num vetor.

Depois o programa deverá pedir para o utilizador introduzir um nome para ver se esse nome está no vetor, mas não estou a conseguir.

#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <locale.h>
int main()
{
    setlocale(LC_ALL,"Portuguese");
    int i;
    int encontrado=0;
    char nomes[5][20];
    char nome_P[1][20];
    for(i=0;i<5;i++)
    {
        printf("Insira o %dº Nome: ",i+1);
        scanf("%s",&nomes);
    }
    printf("Pesquisar\n\n");
    printf("Insira no mome que deseja procurar: ");
    scanf("%s",&nome_P);
    while (i < 5 && encontrado==0)
    {
        if (nomes == nome_P
        {
            encontrado = 1;
        } 
        else
        {
            i++;
        }
    }
    if (encontrado==1) 
        {
        printf ("Nome encontrado\n");
        } 
        else 
        {
        printf ("Nome não encontrado\n");
        }
}

gostaria que alguem me pudesse ajudar com isto. obrigado

  • Curtir 1
Link para o comentário
Compartilhar em outros sites

Ola @Mpixell !

Você postou o código inteiro e isso é muito ruim porque a questão diz respeito uma das tarefas do programa e não a todas elas. Então tente fazer outro programa que busca uma palavra em um vetor tão somente isso, depois poste aqui usando o tag <> ou melhor hospede o arquivo no Drop Box. As vezes e melhor fazer tarefas e programas separados para depois juntar tudo em um só. Com isso você aprende mais.

  • Curtir 2
Link para o comentário
Compartilhar em outros sites

@Mpixell      para compara string você precisa usar o comando 

strcmp(primeira_string,segunda_string)==0

se for zero então é igual, qualquer outro valor é diferente .     então esse seu código ficaria assim :

#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <unistd.h>
#include <locale.h>
int main()
{
    int i,encontrado=0;
    char nomes[5][20],nome_P[1][20];
    setlocale(LC_ALL,"");/*deixando assim ele pega o idioma automaticamente */
    for(i=0;i<5;i++)
    {
        printf("Insira o %dº Nome: ",i+1);
        fflush(stdin);/* se usar gets precisa desse flush en todas leitura de teclado */
        scanf("%s",&nomes[i]);/* precisa informar em qual posição do vetor */
    }
    printf("Pesquisar\n\n");
    printf("Insira no mome que deseja procurar: ");
    /*scanf("%s",&nome_P);/* scanf só pegar o primeiro nome da frase */
    fflush(stdin);/* para usar gets() precisa desse flush(stdin) */
    gets(nome_P);/* gets() pega a frase toda */
    i=0;/* precisa zerar essa variável */
    while (i < 5 && encontrado==0)
    {
        if (strcmp(nomes[i],nome_P[0])==0)/* para compara string */
        {
            encontrado = 1;
            break;
        }
        i++;
    }
    if (encontrado==1)
    {
        printf ("Nome encontrado\n");
    }
    else
    {
        printf ("Nome não encontrado\n");
    }
    return 0;
}

 

  • Curtir 1
Link para o comentário
Compartilhar em outros sites

16 horas atrás, Mpixell disse:

Eu estava sem tempo e não pensei bem no que estava a fazer quando coloquei o código todo,peço desculpas.

Não há o que se desculpar. Entenda a intenção ainda é aconselhar que siga resolvendo os exercício muito longos em partes menores. "Dividir e Conquistar" você já deve ter ouvido isso.

GC!

Link para o comentário
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

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