Passwort vergleich?!
-
Und wie sieht das dann aus mit dem "strcmp"? Habe keine Ahnung wie ich es damit machen soll.
-
neobead schrieb:
Und wie sieht das dann aus mit dem "strcmp"? Habe keine Ahnung wie ich es damit machen soll.
man: strcmp() vergleicht zwei char-Arrays, sieht nach ob das erste grösser, kleiner oder gleich dem zweiten ist (nach irgendeinem Ordnungsprinzip). Wenn sie gleich sind, gibt es 0 zurück.
-
Wie genau geb ich dann dort das Passwort an? Weil das hatten wir in der Schule noch nicht
.
-
neobead schrieb:
Wie genau geb ich dann dort das Passwort an? Weil das hatten wir in der Schule noch nicht
.
Versuch mal
if (strcmp(kennwort, "ALPA") == 0) ...
Und nimm niemals gets() für menschliche Eingaben. Und, bitte, rtfm.
-
neobead schrieb:
Und wie sieht das dann aus mit dem "strcmp"? Habe keine Ahnung wie ich es damit machen soll.
Immer, wenn du keine Ahnung hast, wie eine Funktion funktioniert, musst du - (Trommelwirbel) - in die Doku schauen!
Das Wichtigste, wenn man programmieren will, ist die Fähigkeit, sich selbst die benötigten Infos zu besorgen. Ein schlechter Autodidakt wird mit hoher Wahrscheinlichkeit auch ein schlechter Programmierer.
-
_matze schrieb:
Das Wichtigste, wenn man programmieren will, ist die Fähigkeit, sich selbst die benötigten Infos zu besorgen. Ein schlechter Autodidakt wird mit hoher Wahrscheinlichkeit auch ein schlechter Programmierer.
Genial.
-
µngbd schrieb:
Versuch mal
if (strcmp(kennwort, "ALPA") == 0) ...
if(!strcmp(kennwort, "ALPA"))
-
Speichere auf keinen Fall das Passwort im Klartext. Das kann jeder Angreifer direkt aus der Programmdatei auslesen. Mal abgesehen davon gehen die Passwörter von Nutzern selbst dem Admin selten etwas an.
Für so etwas benutzt man eine Hashfunktion!
-
FreakY<3Cpp schrieb:
µngbd schrieb:
Versuch mal
if (strcmp(kennwort, "ALPA") == 0) ...
if(!strcmp(kennwort, "ALPA"))
klugscheißer
-
tsss schrieb:
FreakY<3Cpp schrieb:
µngbd schrieb:
Versuch mal
if (strcmp(kennwort, "ALPA") == 0) ...
if(!strcmp(kennwort, "ALPA"))
klugscheißer
Klugscheißer.
-
FreakY<3Cpp schrieb:
if(!strcmp(kennwort, "ALPA"))
If Kennwort is not ALPA
-
Blackman schrieb:
FreakY<3Cpp schrieb:
if(!strcmp(kennwort, "ALPA"))
If Kennwort is not ALPA
strcmp gibt 0 zurück, wenn die beiden Strings sich gleichen, und 0 bedeutet in der BOOL´schen Welt falsch.
-
;fricky´s Ehefrau schrieb:
strcmp gibt 0 zurück, wenn die beiden Strings sich gleichen, und 0 bedeutet in der BOOL´schen Welt falsch.
Also ist es falsch, dass sie sich gleichen, wenn sie sich gleichen. So ein Unsinn.
-
Blackman schrieb:
;fricky´s Ehefrau schrieb:
strcmp gibt 0 zurück, wenn die beiden Strings sich gleichen, und 0 bedeutet in der BOOL´schen Welt falsch.
Also ist es falsch, dass sie sich gleichen, wenn sie sich gleichen. So ein Unsinn.
Jein. Eigentlich hat die 0 in dem Fall eben keine boolsche Bedeutung (siehe man: strcmp). Daher schreibt man eigentlich nicht
if(!strcmp...)
sondern eben lieberif(strcmp(...) == 0)
um den Unterschied deutlich zu machen.
-
rüdiger schrieb:
Daher schreibt man eigentlich nicht
if(!strcmp...)
sondern eben lieberif(strcmp(...) == 0)
um den Unterschied deutlich zu machen.Das wollte ich damit sagen!
-
So das ist immoment meine Passwort abfrage. Nun mein Problem. In der If-Schleife hab ich ja geschrieben das, dass Passwort ja "ALPA" ist.Jedoch egal was ich eingeb kommt immer "Das Passwort wurde korrekt eingegeben". Muss ich das nicht auch bei char oder so festlegen das passwort? Weil sonst kann er es ja nicht vergleichen oder?
if(strcmp(kennwort, "ALPA")) //Passwort festgelegung//
{
printf("Das Password wurde korrekt eingeben!"); //Passwort korrekt//
}
else
printf("Das Passwort wurde falsch eingeben!"); //Password falsch//}
Und danke für die bisherigen vielen Antworten
-
neobead schrieb:
In der If-Schleife hab ich ja geschrieben das, dass Passwort ja "ALPA" ist.Jedoch egal was ich eingeb kommt immer "Das Passwort wurde korrekt eingegeben".
Nein. Wenn Du ALPA eingibst gehts in den else-Zweig.
http://www.if-schleife.de/
-
Wo kann ich dann das Passwort festlegen?
char a = ALPA
oder wie?
Als ich es mit int gemacht hatte, ging es nur mit zahlen.
-
neobead schrieb:
In der If-Schleife hab ich ja geschrieben das, dass Passwort ja "ALPA" ist.
-
#define EQUALS(a,b) (strcmp((a),(b))==0) char *pwd = "ALPA"; char input[100]; int main (void) { scanf ("%s", input); if (EQUALS(input,pwd)) puts ("Ja"); else puts ("Nein"); }
Und achte auf Großschreibung.