String soll als Passwort dienen - Überprüfung funktioniert nicht



  • Hallo liebes Forum,

    ich wusste leider nicht, welcher Titel für meine Frage besser wäre. 😞

    Es geht um folgendes:

    Ich will einen String an eine Funktion übergeben, welche mir dann mitteilt, ob der String bestimmte Eigenschaften erfüllt.

    In diesem Fall soll er mindestens die Länge 6 haben, einen Buchstaben enhalten und eine Ziffer.

    Folgender Code funktioniert z.B wenn ich als Passwort "HelloWorld12" eingebe, "HelloWorld1" funktioniert hingegen nicht, obwohl es ja auch die Eigenschaften erfüllt.

    Kann mir jemand bitte sagen, wo der Fehler bei der Überprüfung liegt?

    Bitte geht nicht auf Effizienz/Ineffizienz oder so ein, es geht mir lediglich um die korrekte Überprüfung.

    #include <stdio.h>
    #include <string.h>
    
    int password(char string[], int len)
    {
        int Bu = 0;
        int zif = 0;
        int i = 0;
    
        while(string[i] != '\0')
        {
    
            if('A' <= string[i] && string[i] <= 'Z')
            {
                ++Bu;
            }
    
            else if('a' <= string[i] && string[i] <= 'z')
            {
                ++Bu;
            }
    
            else if('0' <= string[i] && string[i] <= '9')
            {
                ++zif;
            }
    
            i++;
    
        }
    
        if(len >= 6 && Bu > 1 && zif > 1)
        {
            return 1;
        }
        else
        {
            return 0;
        }
    
    }
    
    int main(int argc, const char * argv[])
    {
        char string[] = "HelloWorld12";
    
        int len = strlen(string);
    
        if(password(string, len))
        {
            printf("Das Passwort ist zulässig!");
        }
        else
        {
            printf("Das Passwort ist nicht zulässig!");
        }
    
    }
    

    beste Grüße
    Fabian



  • if(len >= 6 && Bu >= 1 && zif >= 1)
    


  • Ohje!

    Vielen lieben Dank!
    Ich hatte es einfach übersehen. 🙂


Anmelden zum Antworten