C স্ট্রিং সংযোজন

C String Concatenation



সংযোজন হল প্রথম স্ট্রিংয়ের শেষে দ্বিতীয় স্ট্রিং যুক্ত করার প্রক্রিয়া। এই নিবন্ধে আমরা বিভিন্ন পদ্ধতি ব্যবহার করে সি -তে স্ট্রিংগুলিকে কীভাবে সংযুক্ত করা যায় তা নিয়ে আলোচনা করতে যাচ্ছি।

স্ট্যান্ডার্ড সি লাইব্রেরি ফাংশন যা স্ট্রিংকে একত্রিত করতে ব্যবহৃত হয় strcat ()।







ফাংশন প্রোটোটাইপ:

$গৃহস্থালি * strcat (str1,str2);

যেখানে str1 হল প্রথম স্ট্রিং এবং str2 হল দ্বিতীয় স্ট্রিং। ফাংশনের রিটার্ন মান হল সংযোজিত স্ট্রিং এর পয়েন্টার।



এখন, উদাহরণের সাহায্যে আমরা দেখব কিভাবে সংযোজন করা হয়।



উদাহরণ 1:

$ strcat (str1,str2);
যেখানে str1 হল বেলা
str2 হুইটম্যান

স্ট্রিং সংযোজনের পরে,প্রথম স্ট্রিং হবে

str1 বেলা হুইটম্যান
str2 হুইটম্যান

যখন string2 একই থাকবে।





উদাহরণ 2:

$ strcat (str2,str1);
যেখানে str1 হল বেলা
str2 হুইটম্যান

স্ট্রিং সংযোজনের পরে,সংযোজিত স্ট্রিং হবে

str1 বেলা
str2 বেলা হুইটম্যান

যখন string1 একই থাকবে।

সি হেডার ফাইলে ঘোষণা

স্ট্রিং হ্যান্ডলিং ফাংশন হেডারফাইলের অধীনে ঘোষণা করা হয়। যদি কেউ সংহত করার জন্য স্ট্যান্ডার্ড ফাংশন ব্যবহার করতে চায়, এই হেডার ফাইলটি অন্তর্ভুক্ত করা প্রয়োজন।



অতএব, আমরা দুটি উপায়ে স্ট্রিং সংযোজন অর্জন করতে পারি। একটি হল স্ট্যান্ডার্ড সি লাইব্রেরি ফাংশন ব্যবহার করা এবং অন্যটি সি লাইব্রেরি ফাংশন ব্যবহার না করে। উভয় উপায়ে প্রদর্শনের জন্য উদাহরণস্বরূপ প্রোগ্রাম রয়েছে। সি লাইব্রেরি ফাংশন ব্যবহার না করে স্ট্রিং সংযোজন একাধিক উপায়ে প্রয়োগ করা যেতে পারে।

আমরা উদাহরণ সহ আসন্ন বিভাগগুলিতেও এটি নিয়ে আলোচনা করব।

সি লাইব্রেরি ফাংশন ব্যবহার করে দুটি স্ট্রিং এর সংযোজন

#অন্তর্ভুক্ত

#অন্তর্ভুক্ত

#BUF_SIZE 256 নির্ধারণ করুন
intপ্রধান()
{
গৃহস্থালিS1[BUF_SIZE],S2[BUF_SIZE]; / * দুটি স্ট্রিং বাফার */

printf ('প্রথম স্ট্রিং লিখুনn'); ] /* ব্যবহারকারীর প্রথম স্ট্রিং ইনপুট করার জন্য কনসোলে বার্তা প্রিন্ট করুন*/
fgets (S1,BUF_SIZE,stdin); / * S1 বাফারে ব্যবহারকারীর ইনপুট স্ট্রিং সঞ্চয় করুন */
S1[ strlen (S1)-] = ' 0';

printf ('দ্বিতীয় স্ট্রিং লিখুনn');/* দ্বিতীয় স্ট্রিং ইনপুট করতে ব্যবহারকারীর কাছে বার্তা প্রিন্ট করুন*/
fgets (S2,BUF_SIZE,stdin); / * S2 বাফারে ব্যবহারকারীর ইনপুট স্ট্রিং সঞ্চয় করুন */
S2[ strlen (S2)-] = ' 0';

strcat (S1,S2); / *এস 1 এবং এস 2 স্ট্রিং সহ স্ট্যান্ডার্ড ফাংশন কল করুন */

printf ('nসংযোজিত স্ট্রিং %snn',S1); / *আউটপুট: S1 S2 */

প্রত্যাবর্তন 0;
}

প্রোগ্রাম এবং আউটপুট স্ন্যাপশট:

পাঠ্য বর্ণনা স্বয়ংক্রিয়ভাবে উত্পন্ন

পাঠ্য বিবরণ স্বয়ংক্রিয়ভাবে মাঝারি আত্মবিশ্বাসের সাথে তৈরি হয়

লাইব্রেরি ফাংশন ব্যবহার না করে দুটি স্ট্রিং এর সংযোজন

প্রথম স্ট্রিংয়ের শেষে দ্বিতীয় স্ট্রিং কপি করার জন্য লুপ ব্যবহার করা।

#অন্তর্ভুক্ত

#অন্তর্ভুক্ত

#BUF_SIZE 256 নির্ধারণ করুন
intপ্রধান()
{
গৃহস্থালিS1[BUF_SIZE],S2[BUF_SIZE]; /* উভয় স্ট্রিং এর জন্য বাফার S1, S2 ঘোষণা করুন*/
intদৈর্ঘ্য= 0,আমি,j; /*লুপ ট্র্যাভারসালের জন্য প্রয়োজনীয় ভেরিয়েবল*/

printf ('প্রথম স্ট্রিং লিখুন'); / * প্রথম স্ট্রিং লিখতে ব্যবহারকারীর বার্তা প্রিন্ট করুন */
fgets (S1,BUF_SIZE,stdin); /* ব্যবহারকারীর ইনপুট স্ট্রিং S1*/
S1[ strlen (S1)-] = ' 0';

printf ('দ্বিতীয় স্ট্রিং লিখুন'); / * দ্বিতীয় স্ট্রিং প্রবেশ করতে ব্যবহারকারী বার্তা প্রিন্ট করুন */
fgets (S2,BUF_SIZE,stdin); /* ব্যবহারকারীর ইনপুট স্ট্রিং S2*/
S2[ strlen (S2)-] = ' 0';
/* S1 এর দৈর্ঘ্য খুঁজে পেতে প্রথম স্ট্রিং অতিক্রম করুন*/
জন্য(আমি=0;S1[আমি]! =' 0';আমি++)
{
দৈর্ঘ্য=দৈর্ঘ্য+;
}

/*দৈর্ঘ্যের S1 এর শেষ থাকবে, দৈর্ঘ্য থেকে শুরু করে S1*তে সম্পূর্ণ S2 অনুলিপি করুন
জন্য(আমি=দৈর্ঘ্য,j=0;S2[j]! =' 0';আমি++,j++)
{
S1[আমি]=S2[j];
S1[আমি]=' 0';
}

/ *S1 প্রিন্ট করুন, সংযোজিত ফলাফল */
printf ('nসংযোজিত স্ট্রিং %snn',S1);
প্রত্যাবর্তন 0;
}

প্রোগ্রাম এবং আউটপুট স্ন্যাপশট:

পাঠ্য বর্ণনা স্বয়ংক্রিয়ভাবে উত্পন্ন

পাঠ্য বর্ণনা স্বয়ংক্রিয়ভাবে উত্পন্ন

লাইব্রেরি ফাংশন ছাড়া আরেকটি উপায়

পুনরাবৃত্তি ব্যবহার করে সংযোজন:

স্ট্রিং 1 এর দৈর্ঘ্য পেতে ফাংশন stringconcatenate () ব্যবহার করা হবে। যদি S2 খালি থাকে তাহলে S2 কে একটি শূন্য অক্ষর দেওয়া হবে।

যদি S1 এর শেষে S2 এর উপাদান যোগ করার পরিবর্তে S2 [i+j] = S2 [j] যোগ করা হয়, তাহলে এটি স্ট্রিং -এ i- এর মান বাড়ায়।

একটি ফাংশন একটি যুক্তি হিসাবে সংশোধিত স্ট্রিং (S1, S2) পাস করে নিজেকে বলা হবে। এস 2 খালি না হওয়া পর্যন্ত এটি বারবার বলা হবে।

সংযোজিত এস 1 প্রধান () হিসাবে মুদ্রিত হবে

#অন্তর্ভুক্ত

#অন্তর্ভুক্ত

#BUF_SIZE 256 নির্ধারণ করুন

/ * উপরের বর্ণনা অনুযায়ী স্ট্রিং সংযোজন বাস্তবায়নের জন্য পুনরাবৃত্তিমূলক ফাংশন */
অকার্যকরstringconcatenate(গৃহস্থালি *S1,গৃহস্থালি *S2)
{
স্থির intআমি=0;
স্থির intj;
j= strlen (S1);
যদি(!S2[আমি])
{
S2[আমি]=' 0';
}
অন্য
{
S1[j] =S2[আমি];
S1[j+] = ' 0';
আমি++;
stringconcatenate(S1,S2);
}
}
intপ্রধান()
{
গৃহস্থালিS1[BUF_SIZE],S2[BUF_SIZE];

printf ('প্রথম স্ট্রিং এর মান লিখুন:'); / * 1 ম স্ট্রিং ইনপুট করার জন্য ব্যবহারকারীর বার্তা */
fgets (S1,BUF_SIZE,stdin); / * ব্যবহারকারী ইনপুট প্রথম স্ট্রিং, S1 */
S1[ strlen (S1)-] = ' 0';

printf ('দ্বিতীয় স্ট্রিং এর মান লিখুন:'); / * দ্বিতীয় স্ট্রিং ইনপুট করার জন্য ব্যবহারকারীর বার্তা */
fgets (S2,BUF_SIZE,stdin); / * ব্যবহারকারী ইনপুট প্রথম স্ট্রিং, S2 */
S2[ strlen (S2)-] = ' 0';

stringconcatenate(S1,S2); / * প্যারামিটার হিসাবে এস 1, এস 2 দিয়ে ফাংশন কল করুন */

printf ('স্ট্রিং এর সমন্বয় ='%s 'n',S1);
প্রত্যাবর্তন 0;
}

প্রোগ্রাম এবং আউটপুট স্ন্যাপশট:

পাঠ্য বর্ণনা স্বয়ংক্রিয়ভাবে উত্পন্ন

পাঠ্য বর্ণনা স্বয়ংক্রিয়ভাবে উত্পন্ন

ফাংশন ব্যবহার করে সংযোজন

ফাংশন strconcatenate () দুটি স্ট্রিং একত্রিত করার জন্য main () দ্বারা বলা হয়।

ফাংশন stringlen (string1) ব্যবহার করে string1 এর দৈর্ঘ্য পায়।

String2 [i] এর উপাদানগুলিকে string1 [i+j] এ সংযুক্ত করুন। স্ট্রিং খালি না হওয়া পর্যন্ত এই ধাপটি পুনরাবৃত্তি করা হবে। এখানে, আমরা string1 এর শেষে string1 কে string1 এর সাথে সংযুক্ত করি।

সংযোজিত স্ট্রিং (স্ট্রিং 1) শেষ পর্যন্ত প্রাপ্ত হবে যখন লুপের সমস্ত পুনরাবৃত্তি সঞ্চালিত হবে।

প্রধান () সংযোজিত স্ট্রিং S1 প্রিন্ট করে

#অন্তর্ভুক্ত

#অন্তর্ভুক্ত

#BUF_SIZE 256 নির্ধারণ করুন

/ * উপরের বর্ণনা অনুযায়ী স্ট্রিং সংযোজন বাস্তবায়নের জন্য ফাংশন */
অকার্যকরstrconcatenate(গৃহস্থালি *স্ট্রিং 1, গৃহস্থালি*স্ট্রিং 2)
{
intআমি;
intj= strlen (স্ট্রিং 1);
জন্য(আমি=0;স্ট্রিং2[আমি];আমি++)
{
স্ট্রিং 1[আমি+j]=স্ট্রিং 2[আমি];
}
স্ট্রিং 1[আমি+j]= ' 0';
}
intপ্রধান()
{
গৃহস্থালিস্ট্রিং 1[BUF_SIZE],স্ট্রিং 2[BUF_SIZE];
printf ('প্রথম স্ট্রিং লিখুন:'); / * প্রথম স্ট্রিং এর জন্য ব্যবহারকারী বার্তা */
fgets (স্ট্রিং 1,BUF_SIZE,stdin); / * ব্যবহারকারী ইনপুট দ্বিতীয় স্ট্রিং, স্ট্রিং 1 */
স্ট্রিং 1[ strlen (স্ট্রিং 1)-] = ' 0';

printf ('দ্বিতীয় স্ট্রিং লিখুন:'); / * দ্বিতীয় স্ট্রিং এর জন্য ব্যবহারকারী বার্তা */
fgets (স্ট্রিং 2,BUF_SIZE,stdin); / * ব্যবহারকারী ইনপুট দ্বিতীয় স্ট্রিং, স্ট্রিং 2 */
স্ট্রিং 2[ strlen (স্ট্রিং 2)-] = ' 0';

strconcatenate(স্ট্রিং 1,স্ট্রিং 2); /* স্ট্রিং 1 এবং স্ট্রিং 2 সহ ফাংশনটিকে আর্গুমেন্ট হিসাবে কল করুন*/

printf ('ফলে স্ট্রিং = %s'n',স্ট্রিং 1);
প্রত্যাবর্তন 0;
}

প্রোগ্রাম এবং আউটপুট স্ন্যাপশট:

পাঠ্য বর্ণনা স্বয়ংক্রিয়ভাবে উত্পন্ন

পাঠ্য বর্ণনা স্বয়ংক্রিয়ভাবে উত্পন্ন

Memcpy ব্যবহার করে স্ট্রিং সংযোজন

Memcpy () ফাংশন ব্যবহার করে, স্ট্রিং এর সংযোজন একটি স্ট্রিং বাফার থেকে অন্য স্ট্রিং বাফারের শেষে শব্দ দ্বারা শব্দ অনুলিপি করে করা হয় যেখানে শব্দ আকার 4 বাইট বিবেচনা করে আমরা 32 বিট মেশিনে চলছি যখন আমরা স্ট্রিং সংযোজন করি strcat () ফাংশন ব্যবহার করে স্ট্রিং সংযোজন ব্যবহার করে, এক স্ট্রিং বাফার থেকে অন্য স্ট্রিং বাফারে বাইট কপি করে সংযোজন করা হয়।

এই পদ্ধতি কর্মক্ষমতা দক্ষ।

Memcpy ব্যবহার করার সময় একমাত্র বিবেচ্য বিষয় হল ' 0' এর যত্ন নেওয়া।

C প্রোগ্রাম memcpy সঙ্গে strcat অর্জন:

#অন্তর্ভুক্ত

#অন্তর্ভুক্ত

#BUF_SIZE 256 নির্ধারণ করুন

অকার্যকর strcat_memcpy(গৃহস্থালি *S1, গৃহস্থালি *S2)
{
intদৈর্ঘ্য 1,দৈর্ঘ্য 2;
দৈর্ঘ্য 1= strlen (S1);
দৈর্ঘ্য 2= strlen (S2);
memcpy (S1+দৈর্ঘ্য 1,S2,দৈর্ঘ্য 2);
}
intপ্রধান()
{

গৃহস্থালিস্ট্রিং 1[BUF_SIZE],স্ট্রিং 2[BUF_SIZE];
printf ('প্রথম স্ট্রিং লিখুন:'); / * প্রথম স্ট্রিং এর জন্য ব্যবহারকারী বার্তা */
fgets (স্ট্রিং 1,BUF_SIZE,stdin); / * ব্যবহারকারী ইনপুট দ্বিতীয় স্ট্রিং, স্ট্রিং 1 */
স্ট্রিং 1[ strlen (স্ট্রিং 1)-] = ' 0';

printf ('দ্বিতীয় স্ট্রিং লিখুন:'); / * দ্বিতীয় স্ট্রিং এর জন্য ব্যবহারকারী বার্তা */
fgets (স্ট্রিং 2,BUF_SIZE,stdin); / * ব্যবহারকারী ইনপুট দ্বিতীয় স্ট্রিং, স্ট্রিং 2 */
স্ট্রিং 2[ strlen (স্ট্রিং 2)-] = ' 0';

strcat_memcpy(স্ট্রিং 1,স্ট্রিং 2); /* স্ট্রিং 1 এবং স্ট্রিং 2 সহ ফাংশনটিকে আর্গুমেন্ট হিসাবে কল করুন*/

printf ('ফলে স্ট্রিং = %s'n',স্ট্রিং 1);
প্রত্যাবর্তন 0;


}

প্রোগ্রাম এবং আউটপুট স্ন্যাপশট:

পাঠ্য বর্ণনা স্বয়ংক্রিয়ভাবে উত্পন্ন

পাঠ্য বর্ণনা স্বয়ংক্রিয়ভাবে উত্পন্ন

উপসংহার:

এই সমস্ত আলোচনার মাধ্যমে আমরা সি -তে স্ট্রিং সংযোজন শেষ করতে পারি। আমরা স্ট্রিং সংযোজনের জন্য অনেক উদাহরণ এবং নমুনা প্রোগ্রাম দেখেছি। আমরা প্রধান আইটেমগুলি স্মরণ করব: দুটি উপায় আছে, একটি সি স্ট্যান্ডার্ড এবং অন্যটি ব্যবহারকারীর নির্ধারিত উপায়। ব্যবহারকারী সংজ্ঞায়িত আরও অনেক ধরনের হতে পারে, ব্যবহারকারী কিভাবে স্ট্রিং সংযোজন বাস্তবায়ন করতে চান তার উপর নির্ভর করে।