In C sind "Strings" einfach nur char
Arrays. Daher können Sie sie nicht direkt mit anderen "Strings" verketten.
Sie können die strcat
Funktion, die die Zeichenkette anfügt, auf die in src
an das Ende der Zeichenkette, auf die mit dest
:
char *strcat(char *dest, const char *src);
Hier ist ein Beispiel von cplusplus.com :
char str[80];
strcpy(str, "these ");
strcat(str, "strings ");
strcat(str, "are ");
strcat(str, "concatenated.");
Für den ersten Parameter müssen Sie den Zielpuffer selbst angeben. Der Zielpuffer muss ein Char-Array-Puffer sein. z.B.: char buffer[1024];
Vergewissern Sie sich dass der erste Parameter genügend Platz hat, um das zu speichern, was Sie hineinkopieren wollen. Wenn Sie die Möglichkeit haben, ist es sicherer, Funktionen wie zu verwenden: strcpy_s
y strcat_s
wobei Sie die Größe des Zielpuffers explizit angeben müssen.
備考 : Ein String-Literal kann nicht als Puffer verwendet werden, da es eine Konstante ist. Daher müssen Sie immer ein Char-Array für den Puffer zuweisen.
Der Rückgabewert von strcat
kann einfach ignoriert werden, es gibt lediglich denselben Zeiger zurück, der als erstes Argument übergeben wurde. Er dient der Bequemlichkeit und ermöglicht es Ihnen, die Aufrufe in einer einzigen Codezeile zu verketten:
strcat(strcat(str, foo), bar);
Ihr Problem könnte also wie folgt gelöst werden:
char *foo = "foo";
char *bar = "bar";
char str[80];
strcpy(str, "TEXT ");
strcat(str, foo);
strcat(str, bar);