C C Programmierung, Alphabet Abfrage

Status
Für weitere Antworten geschlossen.

Jinjay95

Cadet 2nd Year
Registriert
Jan. 2015
Beiträge
20
Guten Tag!

Wir haben eine Schulaufgabe bekommen und weiß nicht mehr weiter, eigentlich ist es ganz simpel jedoch fällt mir der Lösungsweg nach langes Grübeln immer noch nicht ein deswegen hoffe ich auf ein wenig Unterstützung.

Die Aufgabe seht ihr unten als Bild, wir sollen das anscheinend mit If und Else machen..

Hättet ihr eine Idee?

Unbenannt.png


Ich habe schon so etwas probiert und ausgetestet aber ich merke schon das ich irgendwie auf dem falschen Weg bin :p

test.png
 
Ich würde an dieser Stelle eher mit einem Integer und ASCII arbeiten.

Ansich ist dein Ansatz schon mal nicht falsch.
 
Chars sind Zahlen. Welche Zahl welchem Buchstaben entspricht bestimmt die Zeichentabelle.
Welche Zeichentabelle in C aktiv ist, legt in Linux die Shell fest. Standard ist ASCII.

Folglich musst nur Zahlenbereiche abfragen. Chars in C müssen als 'a' geschrieben werden, also mit den den einfachen Anführungszeichen falls du so vergleichen willst und nicht mit Zahlen. "" ist für Strings.

Dein Ansatz ist daher ziemlich gut, hast nur die ' ' vergessen ;)
Das Zahlen -> Buchstaben Mapping kannst dir so ansehen:

Code:
// gibt 97 aus

char x = 'a';
printf("%d\n", x);

//dies gibt ein a aus:

printf("%c\n", 97);

// folglich gilt
//x == 'a' == 97, d.h. char ist eine Zahl

Funktioniert in jeder Programmiersprache so, nur bei C sieht man die Basics erst richtig.
Java usw. verstecken vieles vom Programmierer.
 
Zuletzt bearbeitet:
Aus der Aufgabenstellung geht nicht hervor was ihr nutzen dürft und was nicht, das macht es nicht einfacher was dazu zu schreiben.

Die einfachste Methode wäre wohl mit einem regulären Ausdruck zu prüfen ob es sich im einen Groß- oder Kleinbuchstaben handelt oder nicht.

Wenn ihr das nicht dürft würde ich ein Array mit allen Großbuchstaben sowie eines mit allen Kleinbuchstaben anlegen und für jedes zu prüfende Zeichen mit einer For-Schleife durchlaufen lassen und mit das gegebene Zeichen mit dem Inhalt des Arrays vegleichen.
 
Ich versuchs mal zu konkretisieren:

Im Prinzip musst du nichts anderes machen, als zu prüfen, ob deine Eingabe innerhalb von zwei Bereichen liegt.
Die zwei Bereiche sind zum einen der Bereich für uppercase - Buchstaben (A-Z oder ASCII 65 - 90) und lowercase-Buchstaben (a-z oder ASCII 97 - 122).

Als "Werkzeug" brauchst du lediglich die "IF-ELSE -Verzweigung".
 
Also zu deinem Ansatz möchte ich mal anmerken, dass bisweilen noch alle mir bekannten Zahlen größer-gleich 'a' oder kleiner-gleich 'z' waren.

Und @sdwaroc ist dir eigentlich aufgefallen, dass er nach C gefragt hat? Hier ist nichts mit Regex und extra Arrays anzulegen (wo es doch schon die ASCII-Table gibt) ist hier wohl deutlich übers Ziel hinausgeschossen.
 
Danke für die Sprünge Leute, jedoch habe ich echt keine Ahnung wie genau ich das Umsetzen soll.
Wäre einer vielleicht so freundlich und würde den Quelltext den ich als Bild angehängt habe so umschreiben das dass Programm das tut was es dann soll wie in der Aufgabe beschrieben, ich bin jemand der versteht die Aufgabe am besten wenn ich die Lösung genau betrachte :)
 
Das werde ich wohl selbst noch hinbekommen :P
Ich interessiere mich sehr fürs Programmieren und möchte auch in dem Bereich später beruflich Arbeiten.
Jedoch bin ich jemand bei dem eine Erklärung nicht wirklich viel hilft sondern erst die Logik dahinter versteht sobald ich mal die Lösung genauer betrachtet habe..
 
Tja, falscher Weg. Abgesehen davon, dass es mit etwas suchen im Netz wirklich einfach zu lösen ist, auch für einen Anfänger und gerade für jemanden der sich dafür interessiert, darf hier laut Regeln keine Lösung gegeben werden.
 
Status
Für weitere Antworten geschlossen.

Ähnliche Themen

Zurück
Oben