Dalam C, "string" hanyalah char
array biasa . Oleh karena itu, Anda tidak dapat langsung menyatukannya dengan "string" lainnya.
Anda dapat menggunakan strcat
fungsi, yang menambahkan string yang ditunjuk oleh src
hingga akhir string yang ditunjuk oleh dest
:
char *strcat(char *dest, const char *src);
Berikut ini contoh dari cplusplus.com :
char str[80];
strcpy(str, "these ");
strcat(str, "strings ");
strcat(str, "are ");
strcat(str, "concatenated.");
Untuk parameter pertama, Anda perlu menyediakan buffer tujuan itu sendiri. Buffer tujuan harus berupa buffer array char. Misalnya:char buffer[1024];
Pastikan parameter pertama memiliki cukup ruang untuk menyimpan apa yang Anda coba salin ke dalamnya. Jika tersedia untuk Anda, lebih aman untuk menggunakan fungsi-fungsi seperti: strcpy_s
dan di strcat_s
mana Anda secara eksplisit harus menentukan ukuran buffer tujuan.
Catatan : String literal tidak dapat digunakan sebagai buffer, karena itu adalah konstanta. Dengan demikian, Anda selalu harus mengalokasikan array char untuk buffer.
Nilai kembalian dari strcat
hanya bisa diabaikan, itu hanya mengembalikan pointer yang sama seperti yang diteruskan sebagai argumen pertama. Itu ada untuk kenyamanan, dan memungkinkan Anda untuk menghubungkan panggilan menjadi satu baris kode:
strcat(strcat(str, foo), bar);
Jadi masalah Anda bisa diselesaikan sebagai berikut:
char *foo = "foo";
char *bar = "bar";
char str[80];
strcpy(str, "TEXT ");
strcat(str, foo);
strcat(str, bar);