Es kann auf viele Arten erfolgen. Hier ist ein Ansatz, der dynamische Speicherzuweisung verwendet:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main(void)
{
char* str1 = "world!";
char* str2 = "Hello, ";
char* p = malloc(strlen(str1) + strlen(str2) + 1); // Allocate memory for the new string
strcpy(p, str2); // Copy str2 to the new string
strcat(p, str1); // Concatenate str1
printf("%s", p); // print it
free(p); // free the allocated memory
return 0;
}
den Code Versuchen Sie es hier: http://ideone.com/oydJHN
Statt dynamische Speicherzuweisung können Sie so etwas wie verwenden:
#define LENGTH_OF_RESULT 100
char result[LENGTH_OF_RESULT];
statt char* p;
. Sie müssen sicherstellen, dass LENGTH_OF_RESULT groß genug ist, um die verkettete Zeichenfolge zu enthalten. Der Vorteil der dynamischen Speicherzuordnung besteht darin, dass Sie sich keine Gedanken über die Größe der Zielzeichenfolge machen müssen. Ordnen Sie einfach anhand der Länge der Eingabezeichenfolgen das, was Sie benötigen, und 1 für die Nullterminierung hinzu.
Der Nachteil der Verwendung dynamischer Speicherzuweisung ist, dass Sie sich daran erinnern müssen, free
den Speicher, wenn Sie damit fertig sind.
Hast du bei 'strcat' hatte einen Blick? – SMA