Autor Tópico: [ajuda c++] programa qe pede palavra pass  (Lida 1508 vezes)

Gogeta

  • Novato
  • *
  • Mensagens: 41
  • Karma: 0
    • Ver Perfil
[ajuda c++] programa qe pede palavra pass
« em: Janeiro 12, 2009, 12:48:10 »
Boas!

o meu professor de bases de programação pediu para fazer o seguinte programa

1-Crie um programa que peça ao utilizador para introduzir uma palavra passe.

a. Deve garantir que a palavra passe tem um tamanho entre 8 e 10 caracteres.

b. Deve garantir que a palavra passe contém letras e números. Para tal deve percorrer
todos os caracteres da palavra passe introduzida e verificar se esse carácter é uma
letra ou um número.

alguem me pode ajudar sff??


scolpit

  • Membro Pro
  • Uber Geek
  • ****
  • Mensagens: 416
  • Karma: 0
    • Ver Perfil
[ajuda c++] programa qe pede palavra pass
« Responder #1 em: Janeiro 25, 2009, 09:22:37 »
ainda precisas disso?

a A ) é facil. Basta ver quantos caracteres tem a string, e fazer um if para verificar.
a B ) não sei a sintaxe de cór, mas podes ir pelo codigo ASCII, para fazer o check as letras e numeros, e só aceitar se forem ambos validos.
« Última modificação: Janeiro 25, 2009, 09:23:13 por scolpit »
[/align:f0b9a27b5d]

KTachyon

  • iOS Software Engineer
  • Super-Moderador
  • Heroi da Nação
  • *****
  • Mensagens: 4311
  • Karma: 0
  • Software Engineer
    • Ver Perfil
    • Google+
[ajuda c++] programa qe pede palavra pass
« Responder #2 em: Janeiro 26, 2009, 01:05:26 »
Citação de: Gogeta
Boas!

o meu professor de bases de programação pediu para fazer o seguinte programa

1-Crie um programa que peça ao utilizador para introduzir uma palavra passe.

a. Deve garantir que a palavra passe tem um tamanho entre 8 e 10 caracteres.

b. Deve garantir que a palavra passe contém letras e números. Para tal deve percorrer
todos os caracteres da palavra passe introduzida e verificar se esse carácter é uma
letra ou um número.

alguem me pode ajudar sff??


Ou podes usar Lex para fazer essa validação. Não há grandes problemas quanto ao facto de ter que ser em C/C++, pois os ficheiros lex são convertidos para C.

Ficheiro Lex (ex: pass.l):
Código: [Seleccione]
%{
int numchars;
int valid;
%}
%%
[a-zA-Z0-9]  {numchars++;}
.    {valid = 0;}
\n;
%%
int main()
{
numchars = 0;
valid = 1;

yylex();

if (numchars <= 10 && numchars >= 8 && valid)
 printf("Válida.");
else
 printf("Não válida");

return 0;
}

int yywrap()
{
return 1;
}

Para compilar (assumindo que já existe o compilador de Lex no sistema operativo):
Código: [Seleccione]
lex -i pass.l
cc -o PASS lex.yy.c -ll


Penso não me ter enganado... :D



EDIT: Só há uma coisa. Dizes que o programa tem que garantir que a password tem que ter obrigatoriamente letras e números, ou que só pode conter letras ou números?
« Última modificação: Janeiro 26, 2009, 01:08:17 por KhAoTiK_TaChYoN »
Citação de: Steve Ballmer
There's no chance that the iPhone is going to get any significant market share. No chance.
Current status: 146.019.000 iPhones sold 'til Oct 2011.
iPad: 39.850.000 iPads sold 'til Oct 2011.
Over 250.000.000 iOS devices sold 'til Oct 2011.

Apple is the 2nd most valuable public company in the world.