String auf Richtigkeit überprüfen (ohne auf Groß- und Kleinschreibung zu achten)
-
Hi Leute,
ich sitze gerade an meinem ersten Programm in C.
Es wird ein "Freukalkulator" für meinen kleinen Bruder.Das sieht bis jetzt wie folgt aus:
#include "stdafx.h" #include "stdio.h" #include "stdlib.h" int _tmain(int argc, _TCHAR* argv[]) { char s[5]; printf("Frage"); printf("Ja oder Nein eingeben!:"); scanf("%4s",&s[0]); if (s[0] == 'j' && s[1] == 'a'){ printf("ja"); } else if (s[0] == 'n' && s[1] == 'e' && s[2] == 'i' && s[3] == 'n') { printf("nein"); } else printf("\n Nur \"ja\" oder \"nein\" eingeben!"); getchar(); return 0; }
Meine Fragen lautetn:
1. Wie kann ich den String mit z.B. if (s == 'ja') (also nicht so kompliziert)
auf seine Richtigkeit überprüfen?
2. Wie sorge ich dafür das C dabei nicht auf Groß- oder Kleinschreibung achtet?
3. Hat nichts mit dem Titel des Threads zu tun, aber vielleicht kann mir ja
trotzdem jemand auf die Schnelle weiterhelfen:
scanf hebelt die Funktion von getchar() (nämlich, die dass sich das Programm
bei Direktstart aus dem Windows-Explorer, wenn es fertig ist, nich sofort
wieder schließt) aus. Wie kann ich sonst noch dafür sorgen, dass sich
das Programmfenster nicht sofort wieder schließt?Danke schonmal im Voraus...
eLeMeNt_oF_rEcOmBiNaTiOn
-
eLeMeNt_oF_rEcOmBiNaTiOn schrieb:
1. Wie kann ich den String mit z.B. if (s == 'ja') (also nicht so kompliziert)
auf seine Richtigkeit überprüfen?#include <string.h> int streql( char const* lhs, char const* rhs ) { return strcmp(lhs, rhs) == 0; } // beispiel if (streql(s, "ja"))
eLeMeNt_oF_rEcOmBiNaTiOn schrieb:
2. Wie sorge ich dafür das C dabei nicht auf Groß- oder Kleinschreibung achtet?
Da musst du dich selber drum kümmern. Schau dir
tolower
bzwtoupper
in <ctype.h> an, damit kannst du einzelne Zeichen umwandeln.eLeMeNt_oF_rEcOmBiNaTiOn schrieb:
3. Hat nichts mit dem Titel des Threads zu tun, aber vielleicht kann mir ja
trotzdem jemand auf die Schnelle weiterhelfen:
scanf hebelt die Funktion von getchar() (nämlich, die dass sich das Programm
bei Direktstart aus dem Windows-Explorer, wenn es fertig ist, nich sofort
wieder schließt) aus. Wie kann ich sonst noch dafür sorgen, dass sich
das Programmfenster nicht sofort wieder schließt?Steht in der FAQ.
-
Oder:
if (strcmpi("ja", "JA")) { ...
-
martin_salo schrieb:
Oder:
if (strcmpi("ja", "JA")) { ...
Ist leider nicht ANSI C (iirc eine Ergänzung von Microsoft).
-
Danke Leute,
ihr habt mir sehr weitergeholfen...Gutz Nächtle