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:  
Entre para seguir isso  
arh

Como armazenar string em variavies?

Recommended Posts

oi galera, to estudando a linguagem c, e to com um problema

nao consigo armazenar uma string, a ideia do programa seria criar um nome de usuario e senha, e se os dois estiverem certo fazer tal coisa e se tiver errado mostrar o aviso, o programa que fiz ta assim, mas ta dando erro

 #include <stdio.h>
#include <stdlib.h>

int main (void)
{
//variaveis
char nome_mestre [10];
char nome [10];
int senha_mestre [10];
int senha [10];
//***************************************************

//entrada de dados
printf("Digite um nome de usuario: ");
gets(nome_mestre);

printf("Digite uma senha: ");
scanf("%d", &senha_mestre);

printf("\n\nTESTE Digite o nome de usuario: ");
gets(nome);

printf("\nTESTE Digite a senha: ");
scanf("%d", senha);
//**************************************************

//processamento

if (nome_mestre == nome && senha_mestre == senha)

{
printf ("bem vindo senhor(a) %s",senha_mestre);
}
else
{
printf ("nome ou senha invalido");
}

system ("pause");
return(0);


}

O primeiro gets unciona, o segundo nao. o que tem de errado?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Pra comparar strings você tem q usar o strcmp(), com o if não funciona.

E alí no printf depois do if, você pede pra ele imprimir uma string, mas está usando um vetor de inteiros como argumento.

Editado por Deadrools

Compartilhar este post


Link para o post
Compartilhar em outros sites
  • Autor do tópico
  • Pra comparar strings você tem q usar o strcmp(), com o if não funciona.

    R. = Deu certo brother hehe, valeu.

    E alí no printf depois do if, você pede pra ele imprimir uma string, mas está usando um vetor de inteiros como argumento.

    R. Não entendi.

    o que nao entendi foi que o codigo assim da certo

    #include <stdio.h>
    #include <stdlib.h>
    #include <string.h>


    int main ()
    {
    //variaveis
    char nome1[10], nome2[10];
    int senha1,senha2;

    //*******************************************************
    //ENTRADA DE DADOS

    printf("Digite um nome de usuario: ");
    gets (nome1);

    printf ("\nConfirmar nome de usuario: ");
    gets (nome2);


    printf ("\n\nDigite uma senha: ");
    scanf ("%d", &senha1);

    printf ("\nConfirmar senha: ");
    scanf ("%d", &senha2);

    //*********************************************************
    //PROCESSAMENTO
    if (!strcmp (nome1,nome2) && senha1 == senha2)
    { printf("Bem vindo %s. \n", nome2);}
    else
    {printf("nome ou senha invalido.");}


    system ("pause");
    return (0);
    }

    mas se eu coloco a parte

     printf ("\nConfirmar nome de usuario: ");
    gets (nome2);

    depois da parte

     printf ("\n\nDigite uma senha: ");
    scanf ("%d", &senha1);

    ja da erro, a funçao gets term que ser usado uma depois da ourta?

    OBS: como faço pra ocultar o codigo no site, igual o MateusLPS fez aqui http://forum.clubedohardware.com.br/pic-16f628-lcd/833173

    que fica aparecendo a opção "mostrar".

    Editado por arh
    erro

    Compartilhar este post


    Link para o post
    Compartilhar em outros sites

    Você precisa limpar o buffer do teclado usando a função fflush(stdin);

    coloca depois do scanf.

    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

    Entre para seguir isso  





    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

    ×