Mit der Ascii Tabelle vergleichen
-
Hallo,
also ich möchte gerne mit der Ascii Tabelle vergleichen ob sich bei einer Eingabe
um einen Buchstaben oder um eine Zahl Handelt. Um bei meinem Programm einen
Fehler auszugeben sollte jemand eine Buchstaben zB. bei einer Rechnung eingegeben haben.Nun hatte ich dies schon einmal vor einiger Zeit in C , kann mich aber nicht daran
erinnern wie ich das damals gelöst habe. Also meine Frage daher:Wie vergleiche ich eine Eingabe (int) darauf ob das was eingegeben wurde eine
Zahl ist? Bzw wie lautet der "Befehl" in C++ um zuvergleichen ob es sich um
den Ascii Code 100 oder 120 handelt um dem Programm einen Ramen zugeben das er nur
die Zahlen verwendet und bei anderen Zeichen abbricht.Hab mich jetzt villeicht etwas umständlich ausgedrückt , dafür einmal Sorry
aber ist ja noch recht "früh" am morgen^^danke schonmal für Hilfe
-
Solche Aufgaben kannst du prinzipiell noch genauso lösen wie in C. Mit den Funktionen man: isdigit() und man: isalpha() kannst du überprüfen, ob ein Eingabezeichen eine Ziffer bzw. ein Buchstabe ist, mit einem normalen Vergleich
if(c==100)
kannst du feststellen, ob das Zeichen einen gegebenen ASCII-Code hat.
-
CStoll schrieb:
Solche Aufgaben kannst du prinzipiell noch genauso lösen wie in C. Mit den Funktionen man: isdigit() und man: isalpha() kannst du überprüfen, ob ein Eingabezeichen eine Ziffer bzw. ein Buchstabe ist, mit einem normalen Vergleich
if(c==100)
kannst du feststellen, ob das Zeichen einen gegebenen ASCII-Code hat.Wobei Beides genau das auch auf anderen Plattformen tut - d.h.
isdigit
sagt einem auch auf einer NON-ASCII-Maschine, ob man eine Ziffer (auch, wenn der tatsächliche Wert im char ein anderer ist) hat und- der direkte Vergleich sagt einem, ob das char diesen Wert hat (auch, wenn der auf der Plattform dieser Wert für ein anderes Zeichen steht).
Deswegen sollte man wissen, was man will: Will man auf eine bestimmte "syntaktische Eigenschaft" (isalnum, isalpha, iscntrl, isdigit, isgraph, islower, isprint, ispunct, isspace, isupper, isxdigit) oder auf einen bestimmten Zahlenwert abfragen ?
Hier mehr dazu...
Gruß,
Simon2.