Wie verbiete ich Buchstaben einfach und simpel in C?

4 Antworten

Vom Fragesteller als hilfreich ausgezeichnet

Zuerst: Du kannst Code-Fragen hier mit der "Quelltext"-Funktion wesentlich übersichtlicher stellen als rein als Text..

Dann: Du kannst den eingelesenen Character prüfen mit seinem Wert in der ASCII-Tabelle. Sprich: Wenn er in der Range eines Buchstabens liegt, dann kannst du es ablehnen, wenn er in der Range einer Zahl liegt (0-9), dann zulassen.

https://www.torsten-horn.de/techdocs/ascii.htm

Das Alphabet geht von 65 ("A") - 90 ("Z") bzw. 97 ("a") - 122 ("z"). Die Range für Zahlen kannst du ebenfalls ablesen aus der Tabelle.

koboldmaki705 
Fragesteller
 30.01.2023, 13:09

Jetzt weiß ich nicht wie ich es abfragen soll.

0

Man könnte so etwas machen:

   int   i;
   float f;
   char  c;

   i = scanf("%f%c", &f, &c);

Da muss i = 2 und c = 10 sein, d.h. nach der Zahl muss ein Newline-Zeichen (10 bzw. '\n') kommen.

Du hast vergessen, ne Frage zu stellen :D
Tipp: Etwas verbieten kann ziemlich umständlich sein, wenn es sehr viele Möglichkeiten gibt. Du kannst zum Beispiel 143859 unterschiedliche Zeichen eingeben. Willst Du alle testen!? Besser ist es, alles zu verbieten ausser den explizit erlaubten Zeichen. bei einem Taschenrechner würde ich also zwei Eingabefälle unterscheiden: Operatoren (+, -, *, …) und Werte. Für letztere brauchst Du nur 0-9, sowie ein oder zwei Dezimaltrenner (damit Punkt oder Komma gehen) . Luxus wär noch, Leerzeichen und anderen Whitespace rauszufiltern, so sollte zb:
3 458.05
…eine gültige Eingabe sein, falls das jemand irgendwo her kopiert.

Woher ich das weiß:Studium / Ausbildung – MCIPT:EA MCITP:SA

Mach den Text zu einem String und nutze die .find() Funktion dort einfach den Buchstaben eintragen und so einfach ist die Abfrage

Woher ich das weiß:Hobby – Programmiere seid 6 Jahren Modifikationen für Spiele