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.


Anmelden zum Antworten