Ir ao conteúdo
  • Comunicados

    • Gabriel Torres

      Seja um moderador do Clube do Hardware!   12-02-2016

      Prezados membros do Clube do Hardware, Está aberto o processo de seleção de novos moderadores para diversos setores ou áreas do Clube do Hardware. Os requisitos são:   Pelo menos 500 posts e um ano de cadastro; Boa frequência de participação; Ser respeitoso, cordial e educado com os demais membros; Ter bom nível de português; Ter razoável conhecimento da área em que pretende atuar; Saber trabalhar em equipe (com os moderadores, coordenadores e administradores).   Os interessados deverão enviar uma mensagem privada para o usuário @Equipe Clube do Hardware com o título "Candidato a moderador". A mensagem deverá conter respostas às perguntas abaixo:   Qual o seu nome completo? Qual sua data de nascimento? Qual sua formação/profissão? Já atuou como moderador em algo outro fórum, se sim, qual? De forma sucinta, explique o porquê de querer ser moderador do fórum e conte-nos um pouco sobre você.   OBS: Não se trata de função remunerada. Todos que fazem parte do staff são voluntários.
    • DiF

      Poste seus códigos corretamente!   21-05-2016

      Prezados membros do Fórum do Clube do Hardware, O Fórum oferece um recurso chamado CODE, onde o ícone no painel do editor é  <>     O uso deste recurso é  imprescindível para uma melhor leitura, manter a organização, diferenciar de texto comum e principalmente evitar que os compiladores e IDEs acusem erro ao colar um código copiado daqui. Portanto convido-lhes para ler as instruções de como usar este recurso CODE neste tópico:  
Mpixell

C problema procurar um nome no vetor

Recommended Posts

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

Editado por Mpixell
  • Curtir 1

Compartilhar este post


Link para o post
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

Compartilhar este post


Link para o post
Compartilhar em outros sites

@Mauro Britivaldo

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

Agora que tive mais tempo modifiquei o post apenas com a parte que ainda dá erro

Editado por Mpixell
  • Curtir 2

Compartilhar este post


Link para o post
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

Compartilhar este post


Link para o post
Compartilhar em outros sites

@devair1010 Este comando

11 minutos atrás, devair1010 disse:

gets(nome_P);/* gets() pega a frase toda */

esta a dar-me o seguinte erro

[Error] cannot convert 'char (*)[20]' to 'char*' for argument '1' to 'char* gets(char*)'

  • Curtir 1

Compartilhar este post


Link para o post
Compartilhar em outros sites

@Mpixell     coloque assim então :

gets(nome_P[0]);

no entanto aqui no codeblocks não está dando nenhum erro .   qual compilador você está usando ?

  • Curtir 1

Compartilhar este post


Link para o post
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!

Editado por Mauro Britivaldo
Sintaxe da nossa Língua

Compartilhar este post


Link para o post
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário






Sobre o Clube do Hardware

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

×