Ir ao conteúdo
  • Cadastre-se
Jose Junior_756569

RESOLVIDO Vetor de Strings e Comparação

Recommended Posts

Galera, preciso de uma ajuda nessa programação....
Preciso de um programa onde declaro 6 nomes com 40 caracteres cada e guardo em um vetor i, apos guardados digito um novo nome para pesquisa entre esses 6 ja digitados.

#include<stdio.h>#include<stdlib.h>#include<string.h>int main(void){char a[6][40];int i;char nome[40];int achou=0;printf("\tLeitura de Nomes \n\t Guardados em um Vetor \n");for(i=0;i<=5;i++){printf("\n Nomes:");scanf("%s",&nome);    a[i]=nome;}printf("\n digite o nome a ser pesquisado: ");scanf("%s",&nome);for(i=0;i<=5;i++){    if(nome==a[i])     achou=1;    }if(achou==1)printf("\n cadastrado \n");else printf("\n nao cadastrado \n");system("pause");return(0);}

 

me basiei por esta programação que meu professor passou que tem a mesma função so que com numeros inteiros...

#include <stdio.h>#include <stdlib.h>    int main (void){        int a [4];        char i;        int num;        int achou=0;                //leitura vetor//                for (i=0;i<=3;i++){            printf ("\n A [%d]", i);            scanf ("%d", &num);            a[i]=num;        }                //pesquisar se o elemento lido esta cadastrada//                printf ("\n digite o elemento a ser pesquisado: ");        scanf ("%d", &num);        for (i=0; i<=3;i++){            if (num==a[i])            achou=1;        }            if (achou==1)            printf ("\n cadastrado \n");            else printf ("\n nao cadastrado \n");                        system ("pause");            return 0;    }

o erro que o programa com caracteres apresente esta na hora da comparação de "a=nome;", estou usado esta forma pois nao foi achado outro de jeito de criar um verdadeiro ou falso, se conseguirem resolver este erro pra min ou dar uma ideia nova de comparar e criar um novo verdadeiro ou falso estaria muito agradecido...
Valeu pessoal do forum

joia.gif

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá!


Olha sou iniciante em Programação mas, dei uma olhada rápida, veja se te ajuda . . .


Nas linhas: 18 e 19 você escreveu : scanf ( "%s", nome );
                                                         a [ i ] = nome;

quando o correto seria apenas, scanf ( “%s”, a [ i ] );

|23|warning: format ‘%s’ expects argument of type ‘char *’, but argument 2 has type ‘char (*)[40]’ - neste alerta o problema ocorre porque em um vetor de caracteres o primeiro elemento do vetor de caracteres é um ponteiro que vai referenciar ao endereço do mesmo, sendo assim não é necessário o “&”

linha 28: if ( nome == a [ i ] ) o correto seria usar uma função para a comparação de strings, que é o que se quer fazer, o que você poderia fazer, seria:  if ( strcmp ( nome, a [ i ] ) == 0 )

linha 37: system(“pause”); tente evitar a chamada a funções do sistema, principalmente visando a portabilidade e evitando possíveis inconvenientes que os mesmos possam vir a causar, se a sua intenção era o de evitar que a janela se feche, substitu-a system(“pause ”) por getchar();

 

Bom por hora é só, veja se isto resilve o seu problema . . .

 

 

Ubuntu 14.04  GNU GCC 4.8  CodeBlocks 13.12

 

 

Espero ter ajudado ! ! !

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

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

×