सी में, "स्ट्रिंग्स" केवल सादे char
सरणियाँ हैं। इसलिए, आप उन्हें सीधे अन्य "स्ट्रिंग्स" के साथ नहीं जोड़ सकते हैं।
आप strcat
फ़ंक्शन का उपयोग कर सकते हैं , जो द्वारा इंगित स्ट्रिंग src
के अंत तक इंगित स्ट्रिंग को जोड़ता है dest
:
char *strcat(char *dest, const char *src);
यहाँ cplusplus.com से एक उदाहरण है :
char str[80];
strcpy(str, "these ");
strcat(str, "strings ");
strcat(str, "are ");
strcat(str, "concatenated.");
पहले पैरामीटर के लिए, आपको गंतव्य बफ़र स्वयं प्रदान करना होगा। गंतव्य बफ़र चार वर्ण बफ़र होना चाहिए। उदाहरण के लिए:char buffer[1024];
सुनिश्चित करें कि पहले पैरामीटर में स्टोर करने के लिए पर्याप्त जगह है जिसे आप उसमें कॉपी करने की कोशिश कर रहे हैं। यदि आप के लिए उपलब्ध है, यह इस तरह के कार्यों का उपयोग करने के लिए सुरक्षित है: strcpy_s
और strcat_s
जहां आपको स्पष्ट रूप से गंतव्य बफर के आकार को निर्दिष्ट करना होगा।
नोट : एक स्ट्रिंग शाब्दिक का उपयोग बफर के रूप में नहीं किया जा सकता है, क्योंकि यह एक स्थिर है। इस प्रकार, आपको हमेशा बफर के लिए एक चार सरणी आवंटित करना होगा।
के रिटर्न मान को strcat
केवल नजरअंदाज किया जा सकता है, यह केवल उसी सूचक को लौटाता है जैसा कि पहले तर्क के रूप में पारित किया गया था। यह सुविधा के लिए है, और आपको कॉल को एक पंक्ति में कोड करने की अनुमति देता है:
strcat(strcat(str, foo), bar);
तो आपकी समस्या इस प्रकार हल की जा सकती है:
char *foo = "foo";
char *bar = "bar";
char str[80];
strcpy(str, "TEXT ");
strcat(str, foo);
strcat(str, bar);