私が作成しようとしているこのプログラムをさらに進める方法はわかりません。Cのパスワード入力の検証
パスワードに、大文字、小文字、数字のいずれかが1つ以上あるかどうかを確認するためのパスワード入力を検証します。
現時点では一部が壊れています。たとえば、偽の真の文。 main関数の "undynamic" char配列。私は現時点でそれを作る方法も知らない。しかし、それは私が探しているものを説明します。
あまりにも多くのコードを書くことなくこれを検証するにはどうすればよいですか?
これは私の現在のコードです:stringの
#include <stdio.h>
#include <stdlib.h>
#include <ctype.h>
int passval(char pw[])
{
int x;
for (x = 0; x < sizeof(pw); x++) {
if ((isalnum(pw[x])) || (ispunct(pw[x]))) {
return 0;
} else {
return 1;
}
}
return 0;
}
int main()
{
char password[20];
printf("Enter password: ");
scanf("%s", password);
if (passval(password) == TRUE) {
printf("Password is TRUE");
}
return 0;
}
ファーストのような何かをするだろう、 'はsizeof(PW)は、'文字列の長さを取得する方法はありません。 ''\ 0''で停止するか、 '' strlen() ''を使って文字列の長さを取得してください。ループ状態で 'strlen()'を使うと、各繰り返しで呼び出される可能性があるため、パフォーマンスが悪くなることに注意してください。 – MikeCAT
あなたの機能からすぐに戻ります。あなたはフラグを使用する必要があります –
[sizeof(param \ _array)がポインタのサイズなのはなぜですか?](http://stackoverflow.com/questions/11622146/why-sizeofparam-array-is-the-size-of -pointer) –