[Anfänger] Passwort abfrage...
-
ich will eine einfache passwort abfrage schreiben nach den beispiel von jürgen wolf aber irgendwie reicht es schon wenn ich eine stelle weniger eingebe.also
anstatt lars reicht lar
#include <stdio.h> #include <stdlib.h> const char *fehlermeldung[] = { "Login oder Password Falsch", "Fehler 2", "Fehler 3", }; const char p[] = {"268000"}; const char login_choice[] = {"lars"}; int login_check (char login[] ){ int i,n= sizeof(login_choice)/sizeof(char); int count=1; printf("n:%d\n",n); for (i=0; i < n; i++){ printf("count:%d\n",count); if(login[i] != login_choice[i]){ printf("Falsch\n"); // count--; } else count++; } printf("n:%d\n",n); printf("count:%d\n",count); if (count == n){ //printf("SUCH\n"); return 1; } else return 0; } int passw_check (char eingabe[] ){ int count=1; int i,n= sizeof(p)/sizeof(char); for(i=0; i < n; i++){ if(eingabe[i] != p[i]) printf("PASSW"); //count--; else count++; } if (count == n){ printf("TEST\n"); return 1; } else return 0; } int check (char ret1[],char ret2[]){ if( login_check(ret1) == 1 && passw_check(ret2) == 1 ){ printf("Willkommen\n"); } else printf("%s\n",fehlermeldung[0]); }
-
Ich verstehe dein Problem nicht. Wozu so viel Code? Wo ist deine main()-Funktion? Was ruft sie auf?
#include <string.h> #include <stdio.h> const char password[] = "lars"; int main() { char passw_entered[256]; scanf("%255s", passw_entered); if(strcmp(password, passw_entered) == 0) printf("Passwort richtig!"); else printf("Passwort falsch!"); }
-
LarsRosen schrieb:
ich will eine einfache passwort abfrage schreiben nach den beispiel von jürgen wolf aber irgendwie reicht es schon wenn ich eine stelle weniger eingebe.
Tja das ist nunmal so, dass der Code von Stümper JW nichts taugt, du bist nicht der erste, der hier mit solcherlei Pfusch aufschlägt.
- gewöhne dir ab, Stringlängen mit sizeof zu bestimmen
- gewöhne dir an, die dafür vorgesehenen Standardbibliotheksfunktionen, in diesem Fall strlen bzw. gleich strcmp zu verwenden
- achte bei Stringeinleseoperationen auf abschliessende '\n'
- außerdem benutzt man globale Variablen nur äußerst selten
-
Alles klar !