c: funktion, welche groß-und kleinbuchstaben und ziffern aus einem string ausfiltert

marvellous

Mitglied
a) Gegeben ist ein Zeiger, der auf einen String zeigt. Der String besteht nur aus
Großbuchstaben, Kleinbuchstaben und Ziffern.
Schreiben Sie eine C-Funktion, welches diese Zeichen in drei verschiedene Felder
speichert: Alle Großbuchstaben in ein Feld, alle Kleinbuchstaben in ein Feld und alle
Ziffern in ein Feld.
Der Zeiger auf den String wird der Funktion als Parameter übergeben.
Die drei Felder sollen sich nach dem Füllen wie Strings verhalten.
Legen Sie die drei Felder im Heap an, wobei im Heap genügend Platz für alle drei
Felder ist.
Geben Sie am Ende der Funktion die drei Felder am Bildschirm aus.

hab leider keine ahnung wie ich das angehen soll...
wie kann ich denn überprüfen was für buchstaben ein string beinhält?
 
Zuletzt bearbeitet:
Vorgehensweise:
1)Länge des Strings ermitteln
2)Drei char-Arrays mit jeweils soviel Buchstaben +1 (wegen der Null am Ende) erstellen (malloc)
3)Drei int, um zu wissen, wie voll jedes schon ist
4)Jeden Eingabebuchstaben ans Ende des passenden Arrays schreiben.
Das Ende findet man durch die Mitzähl-Zahl (nicht vergessen, diese zu erhöhen)
In welches der drei eder Buchstabe gehört: zB
if(variable>='A'&&variable<='Z')
Das Gleiche mit Kleinbuchstaben und Ziffern.
5)Ans Ende aller drei Arrays noch ein '\0'schreiben.
6)Die drei Arrays mit printf("%s") oder puts ausgeben
7)Die drei Array mit free entfernen

Gruß
 
würde es auch mit der ascii tabelle funktionieren?
und mit if behehlen?
im abschnitt von so und so haben wir großbuchstaben, dann in ein neues array?
 
Was willst du denn mit der ASCII-Tabelle?
Das if, das ich oben geschrieben habe, funktioniert doch auch nur durch die ASCII-Tabelle

Zu den Bereichen: Wer sagt denn, dass alle Groß-/Kleinbuchstaben/Ziffern haufenweise hintereinander kommen?
Wenn du jeden "Block" in ein eigenes Array stopfst, hast du (im ungünstigten Fall) soviel Array wie eingegebene Buchstaben.
 
Zurück