Append() Funktion schreiben (C)?

2 Antworten

Von Erzesel und einem weiteren Experten bestätigt

Du meinst, dass du keine Bibliotheksfunktionen verwenden darfst.

Du musst dir vor Augen führen, dass ein String in C definiert ist als ein Feld von Zeichen (array of chars, um die allgemein übliche Ausdrucksweise zu verwenden). Außerdem musst du dich an die Vereinbarung erinnern, dass ein String mit dem Zeichen '\0' abgeschlossen wird.

Mit diesen Kenntnissen kannst du die Aufgabe in Teilaufgaben zerlegen, die einfach lösbar sind.

Um die Länge eines String zu bestimmen, zählst du die Buchstaben, bis du auf das Schlusszeichen '\0' triffst. Du musst die Länge beider Strings bestimmen.

Die Länge des durch Anhängen entstehenden Strings ist gleich der Summe der Längen der beiden Strings.

Sobald du die Länge des Ergebnisstrings berechnet hast, kannst du ausreichend Speicher reservieren. Denke daran, dass auch das Schlusszeichen '\0' einen Speicherplatz im Array benötigt.

Schließlich kopierst du zuerst den ersten String Buchstabe für Buchstabe in den Ergebnisstring wobei du das Schlusszeichen nicht mitkopieren darfst. Sodann kopierst du die Buchstaben des zweiten String in die restlichen Felder des Ergebnisstrings und schließt diesmal allerdings mit dem Schlusszeichen '\0' ab.

Klingt doch alles ziemlich einfach, oder? Der Rest ist einfach Detailarbeit und du bist natürlich erst fertig, wenn der Compiler keine Fehler mehr meldet und wenn deine Testbeispiele fehlerfrei ausgeführt werden können.

Erzesel  22.05.2022, 18:50

Hut ab... Besser kann man es in deutsch nicht beschreiben 👍

2
RopickHD 
Fragesteller
 22.05.2022, 18:53

Ich habs schon grade gelöst, aber trotzdem vielen Dank :D

0
geri3d  22.05.2022, 23:35

DH

0

So gesehen ist ein String in C ein Array von Chars. Einen String sogesehen gibt es in C nicht. Damit der Compiler weis wann der „String" zuende ist gibt es ein Terminierungszeichen (x00).

Um einen neuen Bytearray zu bekommen musst Du erst allokieren wie viele Zeichen der neue Array bekommt und dann füllst den Array in einer Schleife Zeichen für Zeichen.

Diese Aufgabe übernehen für dich die Bibliotheken aber Du sollst ja verstehen was behind the scenes abgeht...

Kein Quelltext Sorry.

Woher ich das weiß:Berufserfahrung
RopickHD 
Fragesteller
 22.05.2022, 18:40

Ohh ich danke dir :D Ich war schon aufm richtigen Weg

0