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

Duvida Com If E String


Bernardo B.L

Pergunta

Seguinte tentei agora fazer um aplicativo muito simples, mas não está dando certo...

#include<stdio.h>

#include<stdlib.h>

#include<conio.h>

int main()

{

char senha[50];

printf(" =============== Bem vindo ao portal do Inferno ===============\n\n");

printf("Digite a senha para entrar: ");

senha=getch();

scanf("%s",&senha);

if(senha =='uenden')printf("Parabens!Voce esta no inferno e eu sou o capeta! >;[");

if(senha !='uenden')printf("Burro!Vai pro ceu!Aqui não é o seu lugar!");

system("PAUSE");

return(0);

}

Eu queria que quando a pessoa digitasse a senha, as letras não aparecessem, mas isso não é algo necessario, mesmo sem o senha=getch(); o programa não compila...

o erro é acusado na linha da função if...sou muito iniciante, então não sei qual o erro...se alguém ajudar ai... ;D

Link para o comentário
Compartilhar em outros sites

1 resposta a esta questão

Posts Recomendados

  • 0

Esse é um erro comum pra quem está comecando. Uma string é na verdade um vetor de caracteres. Por isso, o operador == não funciona. (ele so funciona para tipos primitivos). Se voce quer comparar strings, voce pode usar a funcao strcmp da lib string.h . Ela devolve 0 se as strings forem iguais, >0 se string a > que string b e < caso contrario.

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

int main(){
     if (strcmp("Ola", "ola") == 0)
            printf("Isso não deveria ter sido impresso\n");
     else
            printf("Isso deveria ter sido impresso\n");
      return 0;
}

E estou achando estranho o uso do getch() (que não é das bibliotecas padrão ANSI de C. de preferencia para getchar() ). Ali onde ele esta sendo usado, ele vai ler o primeiro caractere da senha que o usuario passar e iria deixa-lo em senha, que sera sobrescrita depois com o resto da senha. Voce perderia o primeiro caractere. Mas isso nem vai compilar direito, porque voce esta tentando colocar um char em um tipo char *, o que vai pelo menos gerar um Warning e não faz muito sentido.

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,2k
    • Posts
      652k
×
×
  • Criar Novo...