Sitzung: Jeden Freitag in der Vorlesungszeit ab 16 Uhr c. t. im MAR 0.005. In der vorlesungsfreien Zeit unregelmäßig (Jemensch da?). Macht mit!

C-Kurs/concat: Unterschied zwischen den Versionen

Zeile 6: Zeile 6:
 
Beispiel: Bei "Wort1" und "Wort2" soll als Ergebnis "Wort1 Wort2" geliefert werden.
 
Beispiel: Bei "Wort1" und "Wort2" soll als Ergebnis "Wort1 Wort2" geliefert werden.
  
-(Zusatz) Konkateniere die Programmaufrufparameter (mindestens 2). Gib den Speicher von Zwischenergebnissen immer wieder frei, sodass am Ende keine überflüssigen Speicherblöcke übrig bleiben.
+
-(Zusatz) Konkateniere alle (bis auf den nullten) Programmaufrufparameter (mindestens 2) iterativ mit Hilfe deiner <code>concat</code>-Funktion. Gib den Speicher von Zwischenergebnissen immer wieder frei, sodass am Ende keine überflüssigen Speicherblöcke übrig bleiben.

Version vom 13. September 2011, 18:42 Uhr

In dieser Aufgabe soll eine Funktion geschrieben werden, welche zwei übergebene Zeichenketten konkateniert. Gehe dabei in folgenden Schritten vor:

-Schreibe zunächst eine Funktion int string_length(char* string), welche die Länge des übergebenen Strings zurückgibt. Benutze nicht strlen von C. Denke daran, dass Strings in C mit dem Character '\0' terminieren.

-Schreibe eine Funktion char* concat(char *string1, char *string2), der die übergebenen Zeichenketten mit einem Leerzeichen getrennt(!) konkateniert. Benutze dabei malloc (überlege genau, wieviel Speicherplatz du brauchst), gehe Zeichenweise vor und benutze keine String-Funktionen von C. Beispiel: Bei "Wort1" und "Wort2" soll als Ergebnis "Wort1 Wort2" geliefert werden.

-(Zusatz) Konkateniere alle (bis auf den nullten) Programmaufrufparameter (mindestens 2) iterativ mit Hilfe deiner concat-Funktion. Gib den Speicher von Zwischenergebnissen immer wieder frei, sodass am Ende keine überflüssigen Speicherblöcke übrig bleiben.