Array verknüpfen mit Leerzeichen
-
Hi,
versuche zwei Arrays(die Inhalte) in einer neuen Variable zu kopieren
und dazwischen soll ein Leerzeichen vorhanden.
Ich habe alles versucht, irgendwie kann man das letzte Zeichen /0 nicht überschreiben, so dass es nicht funktioniert.
(Ohne strcat zu verwenden)char voller_name[40]; char vorname[20] = {"Muster"}; char nachname[20] = {"Mann"};
Als Ergebnis soll "voller_name = Muster Mann" rauskommen..
Hat jemand eine Idee, wie man es realisieren kann?PS: Ich habe mit einer Schleife versucht, Array zu Array in "voller_name" einzufügen, was auch nicht klappte.
Entweder wird es zusammengesetzt angezeigt oder dazwischen wird irgendein Symbol eingefügt.Danke
-
char voller_name[40]; char vorname[20] = {"Muster"}; char nachname[20] = {"Mann"}; strcpy(voller_name,vorname); strcpy(&voller_name[strlen(voller_name)+1],nachname); voller_name[strlen(voller_name)]=' ';
-
ohne strcpy etc. zu verwenden
trotzdem danke
-
dslpro schrieb:
ohne strcpy etc. zu verwenden
trotzdem dankeDann schreib dir ein eigenes strcpy. Eine unoptimierte Version ist bloß eine einzeilige Schleife. Ebenso strlen.
-
dslpro schrieb:
ohne strcpy etc. zu verwenden
trotzdem dankeWer lesen kann, ist klar im Vorteil. Du schriebst strcat und nicht strcpy.
Scheint auch wieder bloß eine sinnlose Grundschulenlehreraufgabe zu sein.
-
void MyStrcpy(char *dst, const char *src) { for ( ; *src; ++src, ++dst) *dst = *src; *dst = 0; }
-
Buuuuuuuuuuuuuuuh schrieb:
[...]
Falls dein Nutzername sich auf meinen Einzeilerkommentar bezieht:
void MyStrcpy(char *dst, const char *src) { while(*dst++=*src++); }
Kurz genug?
P.S.: Jedoch hat strcpy eigentlich noch eine Kopie von dst als Rückgabewert, wodurch man wohl nicht um ein paar Ausdrücke mehr herum kommt.
-
Mein Name bezog sich eher auf die Reaktion des Threaderstellers. Das es noch kürzer geht war mir bewusst, aber ich wollte dem Threadersteller zumindest die Chance geben es zu verstehen.
-
Vielleicht auch:
char voller_name[40]; char vorname[20] = {"Muster"}; char nachname[20] = {"Mann"}; sprintf(voller_name,"%s %s", vorname, nachname);
Wenn das nicht auch "verboten" ist.