C'de "dizeler" sadece düz chardizilerdir. Bu nedenle, bunları doğrudan diğer "dizelerle" birleştiremezsiniz.
Sen kullanabilirsiniz strcattarafından işaret dizesini ekler işlevi, srctarafından işaret dizisinin sonuna dest:
char *strcat(char *dest, const char *src);
İşte cplusplus.com'dan bir örnek :
char str[80];
strcpy(str, "these ");
strcat(str, "strings ");
strcat(str, "are ");
strcat(str, "concatenated.");
İlk parametre için, hedef arabelleğinin kendisini sağlamanız gerekir. Hedef arabelleği bir char dizi arabelleği olmalıdır. Örneğin:char buffer[1024];
İlk parametrenin, kopyalamaya çalıştığınız şeyi depolamak için yeterli alana sahip olduğundan emin olun . Size sunulan, bu gibi işlevleri kullanmak güvenlidir: strcpy_sve strcat_saçıkça hedef tampon boyutunu belirtmek zorunda nerede.
Not : Bir dize hazır bilgisi, sabit olduğu için tampon olarak kullanılamaz. Bu nedenle, her zaman arabellek için bir char dizisi ayırmanız gerekir.
Dönüş değeri strcatyok sayılabilir, yalnızca ilk argümanla aynı işaretçiyi döndürür. Kolaylık sağlamak için oradadır ve aramaları bir kod satırında zincirlemenizi sağlar:
strcat(strcat(str, foo), bar);
Böylece probleminiz şu şekilde çözülebilir:
char *foo = "foo";
char *bar = "bar";
char str[80];
strcpy(str, "TEXT ");
strcat(str, foo);
strcat(str, bar);