সি তে, "স্ট্রিংস" কেবল সরল charঅ্যারে are অতএব, আপনি অন্যান্য "স্ট্রিং" দিয়ে সরাসরি তাদের সাথে সংযুক্ত করতে পারবেন না।
আপনি strcatফাংশনটি ব্যবহার করতে পারেন , যা দ্বারা নির্দেশিত স্ট্রিংয়ের শেষে নির্দেশিত srcস্ট্রিং যুক্ত করে dest:
char *strcat(char *dest, const char *src);
এখানে সিপিপ্লসপ্লাস ডটকমের একটি উদাহরণ রয়েছে :
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);