Frage von Questinator123, 27

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

Hallo, ich lerne grade in der Uni C-Programmierung. Ich komme allerdings bei einer Aufgabe nicht weiter, da ich nicht weiß, wie ich weiter vorgehen soll.

Und zwar möchte ich gerne mehrer Worte, die aus mehreren chars bestehen abspeichern. Wie separiere ich diese Worte allerdings am besten von einander ? Ich habe mir schon überlegt einfach ein mehrdimensionales Array zu erstellen, in der ich jedes einzelne Wort in einer Reihe abspeicher, ich weiß allerdings jetzt leider nicht ob es da nicht eine elegantere und weniger fummligere Lösung für gibt.

Die Aufgabe ist halt, dass man eine Zeichenkette hat, die eine andere Zeichenkette in mehrere Worte zerteilt.

BSP.: Zeichenkette 1: xx Zeichenkette 2: abcxxdefxxghi

So nun jedes mal wenn das xx kommt entsteht praktisch ein neues Wort, da alles bisherige abgeschnitten werden soll.

Antwort
von safur, 26

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

Antwort
von wotan38, 5

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. 

Antwort
von wolfgang1956, 26

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.

Antwort
von maximilianus7, 22

weder...

die genaue aufgabenstellung,
noch: das problem, was du dabei hast (kannst du programmieren?),
ist aus der frage ersichtlich.

neugierdehalbe: was studierst du? gehört der C-Kurs dazu?

Keine passende Antwort gefunden?

Fragen Sie die Community