Du erstellst jeweils ein Array mit allen Großbuchstaben, eines mit allen Kleinbuchstaben, eines mit allen Ziffern und eines mit den entsprechenden geforderten Sonderzeichen.
Dann läufst Du das passwort zeichen für Zeichen durch und prüfst für jedes ab, ob es auch in den Arrays enthalten ist. Wenn ja, so ist die Bedingung passend zu dem jeweiligen Array erfüllt. Wenn hinterher eine der Bedingungen noch nicht erfüllt ist, so fängst Du von vorne an.
Etwas Pseudo-Code:
Code:
function pruefepasswd(passwd: string): boolean;
var
gross, klein, zahl, sonder: boolean
begin
gross := false;
klein := false;
zahl := false;
sonder := false;
for i := 0 to Length(passwd) - 1 do
begin
gross := gross or passwd[i] in ARRAY_GROSSBUCHSTABEN;
klein := klein or passwd[i] in ARRAY_KLEINBUCHSTABEN;
zahl := zahl or passwd[i] in ARRAY_ZAHLEN;
sonder := sonder or passwd[i] in ARRAY_SONDER;
end;
result := gross and klein and zahl and sonder;
end;