[ajuda c++] programa qe pede palavra pass

Started by Gogeta, January 12, 2009, 12:48:10 PM

Previous topic - Next topic

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

scolpit

#1
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.
[/align:f0b9a27b5d]

KTachyon

#2
Quote from: GogetaBoas!

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):
%{
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):
lex -i pass.l
cc -o PASS lex.yy.c -ll


Penso não me ter enganado... http://www.webtuga.com/forum/public/style_emoticons/<#EMO_DIR#>/biggrin.png\' class=\'bbc_emoticon\' alt=\':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?
My Q4 estimate: Macs: 5.89M; iPods: 4.19M; iPhones: 30.0M; iPads: 18.05M; Revenue: 37.00B; EPS: 9.50
AAPL Q3 result: Macs: 4.02M; iPods: 6.80M; iPhones: 26.0M; iPads: 17.04M; Revenue: 35.02B; EPS: 9.32