Log in Programm in C programmieren



  • Hallo,

    ich muss ein Log in Programm in C programmieren.
    Es hat leider einen Fehler.

    Hier erstmal der Code:

    #include <stdio.h>
    int checkPassword (char acEnteredPassword[], char acRealPassword[], int iLengthPassword);
    int checkName (char acEnteredName[], char acRealName[], int iLengthName);
    int main()
    {
        char acEnteredPassword[1000];
        char acRealPassword[] = {'1','2','3','\0'};
        char acEnteredName[1000];
        char acRealName[] = {'U','s','e','r','\0'};
        int iLengthName = sizeof (acRealName);
        int iLengthPassword = sizeof (acRealPassword);
        int iNameRight;
        int iPasswordRight;
    
        printf ("Please etner your log in name: ");
        gets (acEnteredName);
    
        printf ("\nPlease enter the Password: ");
        gets (acEnteredPassword);
    
        checkName (acEnteredName, acRealName, iLengthName);
        if (iNameRight)
        {
            printf ("\nThe log in name is right!");
        }
        else
        {
            printf ("\nThis is the wrong log in name!");
        }
    
        checkPassword (acEnteredPassword, acRealPassword, iLengthPassword);
        if (iPasswordRight)
        {
            printf ("\nThe password is right!");
        }
        else
        {
            printf ("\nThis is the wrong password!");    
        }
    
        printf ("\n\n\n\n");
    
        system ("pause");
    
        return 0;
    }
    
    int checkName (char acEnteredName[], char acRealName[], int iLengthName)
    {
        int iCount;
        int iNameRight = 1;
        int aiLetter[100];
    
        for (iCount = 0; iCount < iLengthName; iCount = iCount + 1)
        {
            aiLetter[iCount] = acEnteredName[iCount];
        }
        return iNameRight;
    }            
    
    int checkPassword (char acEnteredPassword[], char acRealPassword[], int iLengthPassword)
    {
        int iCount;
        int iPasswordRight = 1;
    
        for (iCount = 0; iCount < iLengthPassword; iCount = iCount + 1)
        {
            if (acEnteredPassword[iCount] != acRealPassword[iCount])
            {
                return 0;
            }
        }
        return iPasswordRight;
    }
    

    Warum ist die Ausgabe immer right?
    Bitte helft mir.
    Es ist sehr dringend!



  • iPasswordRight wird uninitialisiert benutzt, ich vermute mal du wolltest schreiben iPasswordRight = checkPassword(...);


Anmelden zum Antworten