strcat selber schreiben
-
Hi,
die Aufgabe lautet die Funktion strcat() selbst zu schreiben. Wenn ich die vorgefertigte Fkt. nutze, wird ja alles abgeschnitten, dass nicht mehr in das Array passt.
z.B.
char ziel[10]="Hallo: "; char name[10]="Gustav";
Als Ausgabe erhalte ich "Hallo: Gus"
bei meinem Code wird aber alles ausgegeben + irgendwelche zufälligen Zeichen
Bleibe ich innerhalb der Arraygrenzen läuft alles normal#include <stdio.h> #include <stdlib.h> #include <string.h> char *anhaengen(char *dest, char *anhang){ int i,j; int b = strlen(dest); for(i=b; i<b+1; i++){ for(j=0; j<strlen(anhang); j++){ dest[i+j]=anhang[j]; } } return dest; } int main(void) { char ziel[20] = "Hallo: "; char name[30]; printf("%s", ziel); fgets(name,30,stdin); printf("%s", anhaengen(ziel,name)); }
Ich muss es also irgendwie schaffen, dass alles was nicht mehr ins Array passt abgeschnitten wird. Nur wie mache ich das
THX
-
berti87 schrieb:
die Aufgabe lautet die Funktion strcat() selbst zu schreiben. Wenn ich die vorgefertigte Fkt. nutze, wird ja alles abgeschnitten, dass nicht mehr in das Array passt.
Nein! Das ist ein Trugschluss.
strcat überschreibt gnadenlos.
berti87 schrieb:
bei meinem Code wird aber alles ausgegeben + irgendwelche zufälligen Zeichen
Bleibe ich innerhalb der Arraygrenzen läuft alles normalDas mit den zufälligen Zeichen liegt daran, dass du den Stringterminator ('\0') nicht mit anhängst.
berti87 schrieb:
Ich muss es also irgendwie schaffen, dass alles was nicht mehr ins Array passt abgeschnitten wird. Nur wie mache ich das
Du übergibst an deine Funktion noch die Größe des Zielbereichs als zusätzlichen Parameter.
-
wow, schnelle, direkte Hilfe. DANKE
-
Und du brauchst nur eine einfache Schleife, keine geschachtelte.