C-Programmierung, mehrere Wörter in einem Feld speichern?

4 Antworten

In C sind alle Programmieraufgaben fummelig, weshalb die Dozenten auf der Uni keine Mühe haben sich entsprechende Übungsbeispiele auszudenken.

Im Grunde geht das ganz einfach: Du brauchst dazu drei Arrays mit je einem Zeichen, eines für den gegebenen String, eines für den Trennstring und ein zweidimensionales für das Ergebnis (Wörter und deren Zeichen). Mit zwei verschachtelten Schleifen lässt sich die Aufgabe lösen. In Schleife  1 prüftst Du,ob das Zeichen mit dem ersten Zeichen des Trennstrings übereinstimmt. Wenn nicht, überträgst das Zeichen als nächstes Zeichen des ersten Wortes im Ergebnis-Arrays. Wenn ja, startest die zweite Schleife und vergleichst in beiden Arrays die folgenden Zeichen auf Übereinstimmung. Bei der ersten Nichtübereinstimmung brichtst Schleife 2 ab und machst bei 1 weiter, wo Du unterbrochen hast, ansonsten dort wo Du gerade bist und schaltest auf das nächste Wort.

Die Arrays müssen so groß sein, dass die maximale Anzahl der Wörter mit ihrer Länge Platz haben. Auch die maximale Länge des Trennzeichens muss bekannt sein. 

Nehmen wir an du hast ein char-array. Das einfachste Trennzeichen könnte auch ein Leerzeichen sein.
"hallo du wie geht es dir"  
Jetzt kannst du per For-Schleife durchflitzen und prüfen ob a[i] =' ' gleich Leerzeichen als Char ist.
Guck auch mal hier:
http://www.c-howto.de/tutorial-strings-zeichenketten.html

Im Prinzip ist das recht einfach. Du brauchst einen Zeiger auf das gespeicherte Wort und den Speicher für das „gespeicherte Wort“, der variabel sein muss, weil die Wörter verschiedene Anzahlen von Buchstaben haben. Dabei musst du darauf achten, dass sowohl der Zeiger als auch das gespeicherte Wort zusammen gehören.

Was möchtest Du wissen?