A
Naja, da gibts noch ein Problem auf das ich CarstenJ schon hingewiesen hatte.
Wenn du eine lokale Variable hast, dann ist diese nur innterhalb des Bereichs (hier Funktion) gültig. Außerdem hast du so eine Speicherleiche. Der reservierte Speicher für zusammen wird erst zum Programmende wieder freigegeben und um so öffter du deine Funktion aufrufst, um so mehr Speicher wird reserviert sein.
Mein Vorschlag:
char *VWort(char *ziel, const char *vor, const char *nach)
{
sprintf(ziel, "%s%s", vor, nach);
return(ziel);
}
//Aufruf
char *wort1 = "Erster Teil ";
char *wort2 = "und zweiter Teil";
char *zusammen;
zusammen = malloc(strlen(wort1) + strlen(wort2) + 1); //reserviert genügend Speicher
VWort(zusammen, wort1, wort2); //fügt strings zusammen
printf("%s", zusammen); //Ausgabe
... //Sonstiges
free(zusammen); //gibt reservierten Speicher wieder frei für zusammen