কিভাবে C ++ স্ট্রিং ক্লাস ব্যবহার করবেন

How Use C String Class



একটি স্ট্রিং আক্ষরিক একটি ধ্রুবক অ্যারে পয়েন্টার মধ্যে অক্ষর একটি ক্রম নুল অক্ষর দ্বারা সমাপ্ত, 0। যখন একটি ভেরিয়েবল দ্বারা চিহ্নিত করা হয়, স্ট্রিং আক্ষরিক সত্যিই দৈর্ঘ্য হ্রাস বা বৃদ্ধি করতে পারে না। স্ট্রিং আক্ষরিক অনেক অপারেশন করা যাবে না। সুতরাং, একটি স্ট্রিং ক্লাসের প্রয়োজন আছে। C ++ স্ট্রিং ক্লাসটি একটি ডেটা স্ট্রাকচারের জন্য, ক্রম অনুসারে অক্ষরের একটি সংগ্রহ, যা সদস্য ফাংশন এবং অপারেটরদের অক্ষরের উপর কাজ করার অনুমতি দেয়। স্ট্রিং ক্লাসটি স্ট্রিং আক্ষরিকের তুলনায় সংশ্লিষ্ট স্ট্রিং আক্ষরিক আরো ম্যানিপুলেশনের অনুমতি দেয়। এই নিবন্ধটি বুঝতে আপনার স্ট্রিং আক্ষরিক সম্পর্কে ভাল জ্ঞান থাকতে হবে।

ক্লাস এবং অবজেক্টস

একটি শ্রেণী হল ভেরিয়েবল এবং ফাংশনের একটি সেট যা একসাথে কাজ করে; যেখানে ভেরিয়েবলের মান নির্ধারিত নেই। যখন ভেরিয়েবলে মান নির্ধারিত হয়, তখন ক্লাস একটি বস্তুতে পরিণত হয়। একই শ্রেণীতে প্রদত্ত বিভিন্ন মান বিভিন্ন বস্তুর ফলে; অর্থাৎ, বিভিন্ন বস্তু বিভিন্ন শ্রেণীর একই শ্রেণী। একটি শ্রেণী থেকে একটি বস্তু তৈরি করা বস্তুটিকে তাত্ক্ষণিক বলে মনে করা হয়।







নাম, স্ট্রিং, একটি শ্রেণী। স্ট্রিং ক্লাস থেকে তৈরি একটি বস্তুর একটি প্রোগ্রামার নির্বাচিত নাম আছে।



ক্লাসের একটি ফাংশন ক্লাস থেকে একটি বস্তু তাত্ক্ষণিকভাবে প্রয়োজন। C ++ এ, সেই ফাংশনটির ক্লাসের নামের মতো নাম রয়েছে। ক্লাস থেকে তৈরি করা বস্তুর (তাত্ক্ষণিক) প্রোগ্রামার দ্বারা তাদের বিভিন্ন নাম দেওয়া হয়।



একটি শ্রেণী থেকে একটি বস্তু তৈরি করা মানে বস্তু তৈরি করা; এর অর্থ তাত্ক্ষণিক করাও।





একটি C ++ প্রোগ্রাম যা স্ট্রিং ক্লাস ব্যবহার করে, ফাইলের শীর্ষে নিম্নলিখিত লাইন দিয়ে শুরু হয়:

#অন্তর্ভুক্ত
#অন্তর্ভুক্ত
নামস্থান std ব্যবহার করে;

প্রথম লাইন ইনপুট/আউটপুটের জন্য। দ্বিতীয় লাইন হল প্রোগ্রামটিকে স্ট্রিং ক্লাসের সমস্ত বৈশিষ্ট্য ব্যবহার করার অনুমতি দেওয়া। তৃতীয় লাইনটি প্রোগ্রামটিকে স্ট্যান্ডার্ড নেমস্পেসে নাম ব্যবহার করতে দেয়।



একটি ফাংশন ওভারলোডিং

যখন দুই বা ততোধিক ভিন্ন ফাংশন স্বাক্ষরের একই নাম থাকে, তখন সেই নামটি ওভারলোড করা হয় বলে বলা হয়। যখন একটি ফাংশন বলা হয়, আর্গুমেন্টের সংখ্যা এবং ধরন, কোন ফাংশনটি কার্যকর করা হয় তা নির্ধারণ করুন।

নির্মাণ

স্ট্রিং ()
নিচের বিবৃতিটি কোন অক্ষর ছাড়াই শূন্য দৈর্ঘ্যের একটি স্ট্রিং তৈরি করে।

স্ট্রিং strCol=স্ট্রিং();

এটি ক্লাসের নাম (বস্তুর ধরন), স্ট্রিং দিয়ে শুরু হয়। এটি প্রোগ্রামার দ্বারা প্রদত্ত অবজেক্ট স্ট্রিং এর নাম অনুসরণ করে। অ্যাসাইনমেন্ট অপারেটর অনুসরণ করে; তারপর খালি বন্ধনী সহ কনস্ট্রাক্টরের নাম। এখানে, strCol হল সমস্ত ডেটা সদস্য (বৈশিষ্ট্য) এবং সদস্য ফাংশন (পদ্ধতি) সহ তাত্ক্ষণিক বস্তু।
স্ট্রিং (str)
এটি উপরের মতই, কিন্তু কনস্ট্রাকটরে একটি স্ট্রিং আক্ষরিক বা একটি আর্গুমেন্ট হিসাবে একটি সনাক্তকারী লাগে। নিম্নোক্ত বিবৃতি এটিকে ব্যাখ্যা করে:

স্ট্রিং strCol=স্ট্রিং('আমি তোমাকে ভালোবাসি');

প্রাথমিক তালিকা সহ নির্মাণ

নিচের কোডটি এটিকে ব্যাখ্যা করে:

স্ট্রিং strCol=স্ট্রিং({'আমি','','দ্য','অথবা','v','এবং','','এবং','অথবা','তুমি',' 0'});

স্ট্রিং আক্ষরিক হল আমি তোমাকে ভালবাসি। প্রারম্ভিক তালিকার শেষে নুল চরিত্রটি লক্ষ্য করুন।

স্ট্রিং (str, n)

এটি একটি স্ট্রিং সংগ্রহ গঠন করে, অন্য স্ট্রিংয়ের প্রথম n অক্ষরের। নিচের কোডটি এটিকে ব্যাখ্যা করে:

গৃহস্থালিপৃ[] = 'আমি তোমাকে ভালোবাসি';
স্ট্রিং strCol=স্ট্রিং(পৃ, 6);
খরচ<<strCol<< 'n';

আউটপুট হল আমি তোমাকে ভালোবাসি প্রথম 6 টি অক্ষর দিয়ে ভালোবাসি। মনে রাখবেন: একক স্থান একটি অক্ষর।

স্ট্রিং (str, pos, n)

এটি n অক্ষরের একটি স্ট্রিং সংগ্রহ গঠন করে, শূন্য-ভিত্তিক সূচী অবস্থান থেকে শুরু করে, অন্য একটি স্ট্রিং এর অবস্থান। নিচের কোডটি এটিকে ব্যাখ্যা করে:

গৃহস্থালিপৃ[] = 'আমি তোমাকে ভালোবাসি';
স্ট্রিং strCol=স্ট্রিং(পৃ, 2, 4);
খরচ<<strCol<< 'n';

আউটপুট হল, ভালবাসা।

উপরের দুটি ক্ষেত্রে, যদি n স্ট্রিংয়ের আকারের চেয়ে বড় হয়, out_of_range ব্যতিক্রমটি নিক্ষেপ করা হয় - পরে দেখুন।

স্ট্রিং (n, 'c')

N অক্ষরের একটি সংগ্রহ গঠন করে, যেখানে সমস্ত অক্ষর একই। বিবেচনা,

স্ট্রিং strCol=স্ট্রিং(5,'এবং');
খরচ<<strCol<< 'n';

আউটপুট হল, eeeee, 5 e’s।

একটি স্ট্রিং বরাদ্দ করা হচ্ছে

উভয় স্ট্রিং ঘোষিত হওয়ার পর নিম্নরূপ একটি স্ট্রিং বরাদ্দ করা যেতে পারে:

স্ট্রিং strCol1=স্ট্রিং('আমি তোমাকে ভালোবাসি');
স্ট্রিং strCol2;
strCol2=strCol1;
খরচ<<strCol2<< 'n';

আউটপুট হল, আমি তোমাকে ভালোবাসি।

ইটারেটর দিয়ে নির্মাণ

একটি পুনরাবৃত্তিকারী একটি সংগ্রহের মানগুলির মাধ্যমে স্ক্যানিংয়ের একটি সাধারণ উপস্থাপনা প্রদান করে। পুনরাবৃত্তির সাথে একটি স্ট্রিং তৈরি করার জন্য একটি সিনট্যাক্স হল:

টেমপ্লেট<ক্লাস InputIterator>
বেসিক_স্ট্রিং(InputIterator শুরু,InputIterator শেষ, constবরাদ্দকারী&
প্রতি=বরাদ্দকারী());

এটি পরিসরের জন্য একটি স্ট্রিং তৈরি করে [শুরু, শেষ] - পরে বিস্তারিত দেখুন।

একটি স্ট্রিং ধ্বংস করা

একটি স্ট্রিং ধ্বংস করার জন্য, এটিকে সুযোগের বাইরে যেতে দিন।

স্ট্রিং ক্লাস এলিমেন্ট অ্যাক্সেস

একটি তাত্ক্ষণিক স্ট্রিং বস্তুটি একটি অ্যারের মত সাব-স্ক্রিপ্ট (ইনডেক্সড) হতে পারে। সূচক গণনা শূন্য থেকে শুরু হয়।

stringName [i]

অপারেশন stringName [i] i এ বর্ণ (উপাদান) এর একটি রেফারেন্স প্রদান করেচরিত্র সংগ্রহের সূচক। নিম্নলিখিত কোড আউটপুট v:

স্ট্রিং strCol=স্ট্রিং('আমি তোমাকে ভালোবাসি');
গৃহস্থালিসিএইচ=strCol[4];
খরচ<<সিএইচ<< 'n';

stringName [i] const

যখন স্ট্রিং অবজেক্ট একটি ধ্রুব বস্তু হয় তখন স্ট্রিং নেম [i] এর পরিবর্তে অপারেশন stringName [i] const কার্যকর করা হয়। এটি উদাহরণস্বরূপ নিম্নলিখিত কোডে ব্যবহৃত হয়:

constস্ট্রিং strCol=স্ট্রিং('আমি তোমাকে ভালোবাসি');
গৃহস্থালিসিএইচ=strCol[4];
খরচ<<সিএইচ<< 'n';

অভিব্যক্তি i- এর একটি ধ্রুবক রেফারেন্স প্রদান করেস্ট্রিং বস্তুর উপাদান। স্ট্রিং এর কোন উপাদানই পরিবর্তন করা যাবে না।

সাবস্ক্রিপ্ট সহ একটি চরিত্র বরাদ্দ করা

একটি অ-ধ্রুবক স্ট্রিং বস্তুর জন্য একটি অক্ষর নিযুক্ত করা যেতে পারে, নিম্নরূপ:

স্ট্রিং strCol=স্ট্রিং('আমি ডাকছি');
strCol[2] = 'চ';
খরচ<<strCol<< 'n';

আউটপুট হল আমি পড়ে যাই। 'C' কে পরিবর্তন করে 'f' করা হয়েছে।

stringName.at (i)

stringName.at (i) stringName [i] এর মতো, কিন্তু stringName.at (i) আরো নির্ভরযোগ্য। নিচের কোডটি দেখায় কিভাবে এটি ব্যবহার করা উচিত:

স্ট্রিং strCol=স্ট্রিং('আমি তোমাকে ভালোবাসি');
গৃহস্থালিসিএইচ=strCol।(4);
খরচ<<সিএইচ<< 'n';

at () আসলে একটি স্ট্রিং ক্লাস সদস্য ফাংশন।

stringName.at (i) const

stringName.at (i) const stringName [i] const এর মতো, কিন্তু stringName.at (i) const আরো নির্ভরযোগ্য। stringName.at (i) const এর পরিবর্তে stringName.at (i) চালানো হয় যখন স্ট্রিং বস্তুটি একটি ধ্রুব স্ট্রিং বস্তু। এটি নিম্নলিখিত কোডে ব্যবহৃত হয়, উদাহরণস্বরূপ:

constস্ট্রিং strCol=স্ট্রিং('আমি তোমাকে ভালোবাসি');
গৃহস্থালিসিএইচ=strCol।(4);
খরচ<<সিএইচ<< 'n';

at () const আসলে একটি স্ট্রিং ক্লাস মেম্বার ফাংশন।

At () ফাংশনের সাথে একটি মান নির্ধারণ করা

একটি মান একটি অ-ধ্রুবক স্ট্রিং বস্তুর জন্য নিযুক্ত করা যেতে পারে, at () ফাংশন সহ, নিম্নরূপ:

স্ট্রিং strCol=স্ট্রিং('আমি ডাকছি');
strCol।(2) = 'চ';
খরচ<<strCol<< 'n';

আউটপুট হল আমি পড়ে যাই।

সাব-স্ক্রিপ্টিং-এ সমস্যা

সাব-স্ক্রিপ্টিং (ইনডেক্সিং) এর সমস্যা হল, যদি সূচকটি সীমার বাইরে থাকে, ভুল ফলাফল পাওয়া যেতে পারে, অথবা রান-টাইমে একটি ত্রুটি জারি হতে পারে।

সামনে ()

এটি উপাদানটি না সরিয়ে স্ট্রিং বস্তুর প্রথম উপাদানটির একটি রেফারেন্স প্রদান করে। নিম্নলিখিত কোডের আউটপুট হল 'আমি'।

স্ট্রিং strCol=স্ট্রিং('আমি তোমাকে ভালোবাসি');
গৃহস্থালিসিএইচ=strCol।সামনে();
খরচ<<সিএইচ<< 'n';

অক্ষরটি স্ট্রিং বস্তু থেকে সরানো হয় না।

সামনের () const

যখন স্ট্রিং অবজেক্ট কনস্ট্রাকশন কনস্টের আগে থাকে, তখন এক্সপ্রেশন ফ্রন্ট () const ফ্রন্ট () এর পরিবর্তে এক্সিকিউট করা হয়। এটি নিম্নলিখিত কোডে ব্যবহৃত হয়, উদাহরণস্বরূপ।

constস্ট্রিং strCol=স্ট্রিং('আমি তোমাকে ভালোবাসি');
গৃহস্থালিসিএইচ=strCol।সামনে();
খরচ<<সিএইচ<< 'n';

একটি ধ্রুবক রেফারেন্স ফেরত দেওয়া হয়। উপাদানটি স্ট্রিং বস্তু থেকে সরানো হয় না। একটি ধ্রুবক স্ট্রিং বস্তুর জন্য কোন অক্ষর পরিবর্তন করা যাবে না।

পেছনে()

এটি উপাদানটি না সরিয়ে স্ট্রিং বস্তুর শেষ উপাদানটির একটি রেফারেন্স প্রদান করে। নিম্নলিখিত কোডের আউটপুট হল 'u'।

স্ট্রিং strCol=স্ট্রিং('আমি তোমাকে ভালোবাসি');
গৃহস্থালিসিএইচ=strCol।পেছনে();
খরচ<<সিএইচ<< 'n';

ফিরে () const

যখন স্ট্রিং অবজেক্ট কনস্ট্রাকশনের আগে const হয়, তখন ব্যাক () const এক্সপ্রেশনটি back () এর পরিবর্তে এক্সিকিউট করা হয়। এটি নিম্নলিখিত কোডে ব্যবহৃত হয়, উদাহরণস্বরূপ।

constস্ট্রিং strCol=স্ট্রিং('আমি তোমাকে ভালোবাসি');
গৃহস্থালিসিএইচ=strCol।পেছনে();
খরচ<<সিএইচ<< 'n';

একটি ধ্রুবক রেফারেন্স ফেরত দেওয়া হয়। উপাদানটি স্ট্রিং বস্তু থেকে সরানো হয় না।

স্ট্রিং ক্যাপাসিটি

size_type ক্ষমতা () const noexcept

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

স্ট্রিং strCol=স্ট্রিং();
intএকের উপর=strCol।ক্ষমতা();
খরচ<<একের উপর<< 'n';

আমার কম্পিউটারে আউটপুট 15।

রিজার্ভ (এন)

মেমরি স্পেস সবসময় ফ্রি স্টোরে পাওয়া যায় না। অতিরিক্ত জায়গা অগ্রিম সংরক্ষণ করা যেতে পারে। নিম্নলিখিত কোড বিভাগ বিবেচনা করুন:

স্ট্রিং strCol=স্ট্রিং('ভালবাসা');
strCol।সংচিতি(6);
খরচ<<strCol।ক্ষমতা() << 'n';

আমার কম্পিউটারে আউটপুট 15।

size () const noexcept

এটি স্ট্রিংয়ের অক্ষরের সংখ্যা প্রদান করে। নিচের কোডটি ব্যাখ্যা করে:

স্ট্রিং strCol=স্ট্রিং('আমি তোমাকে ভালোবাসি');
intএকের উপর=strCol।আকার();
খরচ<<একের উপর<< 'n';

আউটপুট 10, যা নুল, 0 অক্ষর অন্তর্ভুক্ত করে না।

দৈর্ঘ্য () const noexcept

-আকারের সমান()
বিঃদ্রঃ:আকার() <=ক্ষমতা()

shrink_to_fit ()

পুনরায় বরাদ্দকরণ দ্বারা ক্ষমতা () আকারে () কমাতে পারে; এটা বাধ্যতামূলক নয় নিম্নলিখিত কোড এটি প্রদর্শন করে:

স্ট্রিং strCol=স্ট্রিং('আমি তোমাকে ভালোবাসি');
strCol।সংচিতি(12);
strCol।সঙ্কুচিত করা_();
intগুলি=strCol।আকার();
খরচ<<গুলি<< 'n';

আউটপুট 10 এবং 12 বা 16 নয়। ফাংশনটি শূন্য হয়ে যায়।

আকার পরিবর্তন করুন (sz), আকার পরিবর্তন করুন (sz, 'c')

এটি স্ট্রিংটির আকার পরিবর্তন করে। যদি নতুন আকারটি পুরানো আকারের চেয়ে ছোট হয়, তবে শেষের দিকে উপাদানগুলি মুছে ফেলা হয়। যদি নতুন আকার দীর্ঘ হয়, তবে কিছু ডিফল্ট অক্ষর শেষের দিকে যোগ করা হয়। একটি নির্দিষ্ট অক্ষর যুক্ত করার জন্য, দুটি আর্গুমেন্ট সহ resize () ফাংশনটি ব্যবহার করুন। নিচের কোড সেগমেন্ট দুটি ফাংশন ব্যবহার ব্যাখ্যা করে:

স্ট্রিং strCol=স্ট্রিং('আমি তোমাকে ভালোবাসি');
strCol।আকার পরিবর্তন(6);
খরচ<< 'StrCol এর নতুন আকার:' <<strCol।আকার() << 'n';
স্ট্রিং strCol1=স্ট্রিং('আমি ভালোবাসি', 'এবং');
strCol1।আকার পরিবর্তন(12);
খরচ<< 'StrCol1 এর নতুন আকার:' <<strCol1।আকার() << 'n';

আউটপুট হল:

StrCol এর নতুন আকার: 6
StrCol1: 12 এর নতুন আকার
ফাংশন শূন্য ফিরে আসে।

পরিষ্কার () না

স্ট্রিং থেকে সমস্ত উপাদান সরিয়ে দেয়, যেমন নিম্নোক্ত কোড সেগমেন্ট ব্যাখ্যা করে:

স্ট্রিং strCol=স্ট্রিং('আমি তোমাকে ভালোবাসি');
strCol।পরিষ্কার();
খরচ<<strCol।আকার() << 'n';

আউটপুট 0. ফাংশন শূন্য ফেরত।

খালি () const noexcept

স্ট্রিং অবজেক্টে কোন অক্ষর না থাকলে এটি সত্যের জন্য 1 রিটার্ন করে, অথবা স্ট্রিং অবজেক্টটি খালি না থাকলে মিথ্যা জন্য 0 প্রদান করে। নিচের কোডটি এটিকে ব্যাখ্যা করে:

স্ট্রিং strCol1=স্ট্রিং('আমি তোমাকে ভালোবাসি');
খরচ<<strCol1।খালি() << 'n';
স্ট্রিং strCol2=স্ট্রিং();
খরচ<<strCol2।খালি() << 'n';

আউটপুট হল:

0

রিটার্নিং ইটারেটর এবং স্ট্রিং ক্লাস

একটি পুনরাবৃত্ত একটি পয়েন্টার মত কিন্তু পয়েন্টার তুলনায় আরো কার্যকারিতা আছে।

শুরু () noexcept

একটি পুনরাবৃত্তি প্রদান করে যা স্ট্রিং বস্তুর প্রথম অক্ষর (উপাদান) নির্দেশ করে, যেমন নিম্নোক্ত কোড সেগমেন্টে:

স্ট্রিং strCol=স্ট্রিং('আমি তোমাকে ভালোবাসি');
বেসিক_স্ট্রিং<গৃহস্থালি> ::পুনরাবৃত্তকারীইটার=strCol।শুরু();
খরচ<< *ইটার<< 'n';

আউটপুট হল 'আমি'। যেভাবে ঘোষণাপত্রটি পুনরাবৃত্তি করে, তা ঘোষণা করা হয়েছে। পুনরাবৃত্তিকে একটি রিটার্ন এক্সপ্রেশনে মান পেতে একইভাবে, একটি পয়েন্টারকে ডিফারেন্স করা হয়।

start () const noexcept;

একটি পুনরাবৃত্তি প্রদান করে যা স্ট্রিং বস্তুর সংগ্রহের প্রথম উপাদান নির্দেশ করে। যখন বস্তুর নির্মাণ const এর পূর্বে হয়, তখন অভিব্যক্তি start () const এর পরিবর্তে exec () শুরু হয়। এই অবস্থার অধীনে, বস্তুর সংশ্লিষ্ট উপাদান পরিবর্তন করা যাবে না। এটি নিম্নলিখিত কোডে ব্যবহৃত হয়, উদাহরণস্বরূপ।

constস্ট্রিং strCol=স্ট্রিং('আমি তোমাকে ভালোবাসি');
বেসিক_স্ট্রিং<গৃহস্থালি> ::const_iteratorইটার=strCol।শুরু();
খরচ<< *ইটার<< 'n';

আউটপুট হল 'আমি'। মনে রাখবেন যে ফিরে আসা পুনরাবৃত্তিকে গ্রহণ করার জন্য কেবল পুনরাবৃত্তির পরিবর্তে const_iterator ব্যবহার করা হয়েছে।

শেষ () না

একটি পুনরাবৃত্তি প্রদান করে যা অবিলম্বে স্ট্রিং বস্তুর শেষ উপাদানটির বাইরে নির্দেশ করে। নিম্নলিখিত কোড বিভাগ বিবেচনা করুন:

স্ট্রিং strCol=স্ট্রিং('আমি তোমাকে ভালোবাসি');
বেসিক_স্ট্রিং<গৃহস্থালি> ::পুনরাবৃত্তকারীইটার=strCol।শেষ();
খরচ<< *ইটার<< 'n';

আউটপুটটি শূন্য, যা কিছুই নয়, কারণ শেষ উপাদানটির বাইরে কোন কংক্রিট উপাদান নেই।

শেষ () const noexcept

একটি পুনরাবৃত্তি প্রদান করে যা অবিলম্বে স্ট্রিং বস্তুর শেষ উপাদানটির বাইরে নির্দেশ করে। যখন স্ট্রিং অবজেক্ট কনস্ট্রাকশনের আগে const হয়, তখন end () const এক্সপ্রেশনটি end () এর পরিবর্তে এক্সিকিউট করা হয়। নিম্নলিখিত কোড বিভাগ বিবেচনা করুন:

constস্ট্রিং strCol=স্ট্রিং('আমি তোমাকে ভালোবাসি');
বেসিক_স্ট্রিং<গৃহস্থালি> ::const_iteratorইটার=strCol।শেষ();
খরচ<< *ইটার<< 'n';

আউটপুট শূন্য। মনে রাখবেন যে ফিরে আসা পুনরাবৃত্তিকে গ্রহণ করার জন্য কেবল পুনরাবৃত্তির পরিবর্তে const_iterator ব্যবহার করা হয়েছে।

বিপরীত পুনরাবৃত্তি

এটি একটি পুনরাবৃত্ত করা সম্ভব যা প্রকৃত শেষ থেকে প্রথম উপাদানটির পূর্বে পুনরাবৃত্তি করে:

rbegin () noexcept

একটি পুনরাবৃত্তি প্রদান করে যা স্ট্রিং তাত্ক্ষণিক বস্তুর শেষ উপাদান নির্দেশ করে, যেমন নিম্নলিখিত কোড সেগমেন্টে:

স্ট্রিং strCol=স্ট্রিং('আমি তোমাকে ভালোবাসি');
বেসিক_স্ট্রিং<গৃহস্থালি> ::রিভার্স_ইটারেটরইটার=strCol।rbegin();
খরচ<< *ইটার<< 'n';

আউটপুট হল 'ইউ'। উল্টো পুনরাবৃত্তিকে যে ঘোষণাপত্রটি ঘোষণা করা হয়েছে তা লক্ষ্য করুন। পুনরাবৃত্তিকে একটি রিটার্ন এক্সপ্রেশনে মান পেতে একইভাবে, একটি পয়েন্টারকে ডিফারেন্স করা হয়।

rbegin () const noexcept;

একটি পুনরাবৃত্তি প্রদান করে যা স্ট্রিং বস্তুর শেষ উপাদান নির্দেশ করে। যখন বস্তুর নির্মাণ const এর আগে হয়, তখন rbegin () const এক্সপ্রেশনটি rbegin () এর পরিবর্তে কার্যকর করা হয়। এই অবস্থার অধীনে, বস্তুর সংশ্লিষ্ট উপাদান পরিবর্তন করা যাবে না। বৈশিষ্ট্যটি নিম্নলিখিত কোডে ব্যবহৃত হয়, উদাহরণস্বরূপ।

constস্ট্রিং strCol=স্ট্রিং('আমি তোমাকে ভালোবাসি');
বেসিক_স্ট্রিং<গৃহস্থালি> ::const_reverse_iteratorইটার=strCol।rbegin();
খরচ<< *ইটার<< 'n';

আউটপুট হল 'ইউ'। মনে রাখবেন যে ফিরে আসা পুনরাবৃত্তিকে গ্রহণ করার জন্য, শুধু বিপরীত_ইটারেটরের পরিবর্তে const_reverse_iterator ব্যবহার করা হয়েছে।

render () noexcept

একটি পুনরাবৃত্তি প্রদান করে যা স্ট্রিং বস্তুর প্রথম উপাদানটির ঠিক আগে নির্দেশ করে। নিম্নলিখিত কোড বিভাগ বিবেচনা করুন:

স্ট্রিং strCol=স্ট্রিং('আমি তোমাকে ভালোবাসি');
বেসিক_স্ট্রিং<গৃহস্থালি> ::রিভার্স_ইটারেটরইটার=strCol।তৈরি করে();
খরচ<< *ইটার<< 'n';

আউটপুটটি শূন্য, যা কিছুই নয়, কারণ প্রথম উপাদানটির ঠিক আগে কোন কংক্রিট উপাদান নেই।

render () const noexcept

একটি পুনরাবৃত্তি প্রদান করে যা স্ট্রিং বস্তুর প্রথম উপাদানটির ঠিক আগে নির্দেশ করে। যখন অবজেক্ট নির্মাণের আগে const হয়, তখন rend () const এক্সপ্রেশনটি rend () এর পরিবর্তে কার্যকর করা হয়। নিম্নলিখিত কোড বিভাগ বিবেচনা করুন:

constস্ট্রিং strCol=স্ট্রিং('আমি তোমাকে ভালোবাসি');
বেসিক_স্ট্রিং<গৃহস্থালি> ::const_reverse_iteratorইটার=strCol।তৈরি করে();
খরচ<< *ইটার<< 'n';

আউটপুট শূন্য। মনে রাখবেন যে ফিরে আসা পুনরাবৃত্তিকে গ্রহণ করার জন্য, শুধু বিপরীত_ইটারেটরের পরিবর্তে const_reverse_iterator ব্যবহার করা হয়েছে।

স্ট্রিং মোডিফায়ার

একটি সংশোধনকারী যা স্ট্রিং বস্তুটি পরিবর্তন করে, একটি পুনরাবৃত্তিকেও নিতে বা ফেরত দিতে পারে।

সংযোজন

বেসিক_স্ট্রিং&অপারেটর+ =(constবেসিক_স্ট্রিং&পৃ)

ডান স্ট্রিং বস্তুটি বাম স্ট্রিং বস্তুর সাথে যুক্ত করে। উদাহরণ:

স্ট্রিং strCol1=স্ট্রিং('আমি ভালোবাসি');
স্ট্রিং strCol2=স্ট্রিং(' আপনি');
strCol1+ =strCol2;
খরচ<<strCol1<< 'n';

আউটপুট হল আমি তোমাকে ভালোবাসি। ভুলবেন না যে strCol1 += strCol2 হল strCol1 = strCol1 +strCol2।

basic_string & operator+= (const charT* s)

একটি স্ট্রিং বস্তু সংগ্রহে একটি স্ট্রিং আক্ষরিক যুক্ত করে। উদাহরণ:

স্ট্রিং strCol=স্ট্রিং('আমি ভালোবাসি');
strCol+ = ' আপনি';
খরচ<<strCol<< 'n';

আউটপুট: আমি তোমাকে ভালোবাসি।

basic_string & operator+= (charT c)

একটি বস্তু স্ট্রিং একটি একক অক্ষর যোগ করে। উদাহরণ:

স্ট্রিং strCol=স্ট্রিং('আমি তোমাকে ভালবাসি');
strCol+ = 'তুমি';
খরচ<<strCol<< 'n';

আউটপুট: আমি তোমাকে ভালোবাসি।

basic_string & operator+= (initializer_list)

একটি প্রারম্ভিক তালিকা যুক্ত করে। উদাহরণ:

স্ট্রিং strCol=স্ট্রিং('আমি ভালোবাসি');
strCol+ = {'','এবং','অথবা','তুমি',' 0'};
খরচ<<strCol<< 'n';

আউটপুট: আমি তোমাকে ভালোবাসি। একটি অক্ষর প্রারম্ভিক তালিকার শেষে ul 0 যোগ করা সর্বদা ভাল।

basic_string & append (const basic_string & str)

যুক্তি স্ট্রিং বস্তুকে প্রধান স্ট্রিং বস্তুর সাথে যুক্ত করে। উদাহরণ:

স্ট্রিং strCol1=স্ট্রিং('আমি ভালোবাসি');
স্ট্রিং strCol2=স্ট্রিং(' আপনি');
strCol1।সংযোজন(strCol2);
খরচ<<strCol1<< 'n';

আউটপুট: আমি তোমাকে ভালোবাসি।

বেসিক_স্ট্রিং এবং এপেন্ড (const charT* s)

মূল স্ট্রিংয়ে একটি স্ট্রিং আক্ষরিক যুক্তি যুক্ত করে। উদাহরণ

স্ট্রিং strCol=স্ট্রিং('আমি ভালোবাসি');
strCol=strCol।সংযোজন(' আপনি');
খরচ<<strCol<< 'n';

আউটপুট: আমি তোমাকে ভালোবাসি।

বেসিক_স্ট্রিং এবং এপেন্ড (ইনিশিয়ালাইজার_লিস্ট)

প্রারম্ভিক তালিকা যুক্ত করে, যা একটি যুক্তি, মূল স্ট্রিংয়ে। উদাহরণ:

স্ট্রিং strCol=স্ট্রিং('আমি ভালোবাসি');
strCol=strCol।সংযোজন({'','এবং','অথবা','তুমি',' 0'});
খরচ<<strCol<< 'n';

আউটপুট: আমি তোমাকে ভালোবাসি। একটি সূচনাকারী তালিকার শেষে ul 0 অক্ষর যোগ করা সবসময় ভাল।

বেসিক_স্ট্রিং এবং এপেন্ড (সাইজ_ টাইপ এন, চারটি সি)

একই অক্ষরের n যোগ করে। উদাহরণ:

স্ট্রিং strCol=স্ট্রিং('ট্যাব');
strCol=strCol।সংযোজন(2, 'অথবা');
খরচ<<strCol<< 'n';

আউটপুট: নিষিদ্ধ।

বেসিক_স্ট্রিং এবং এপেন্ড (const charT* s, size_type n)

একটি স্ট্রিং এর প্রথম n উপাদানগুলিকে প্রধান স্ট্রিং বস্তুর সাথে যুক্ত করে। উদাহরণ:

স্ট্রিং strCol=স্ট্রিং('আমি ভালোবাসি');
strCol=strCol।সংযোজন(' তুমিও', 4);
খরচ<<strCol<< 'n';

আউটপুট হল: আমি তোমাকে ভালবাসি। যদি n আক্ষরিক দৈর্ঘ্যের চেয়ে বড় হয়, একটি length_error ব্যতিক্রম নিক্ষিপ্ত হয়।

basic_string & append (const basic_string & str, size_type pos, size_type n = npos)

সূচী থেকে n অক্ষর যুক্ত করে, প্রধান স্ট্রিং -এ পোজ। উদাহরণ:

স্ট্রিং strCol=স্ট্রিং('আমি ভালোবাসি');
strCol=strCol।সংযোজন('তুমি কি তাই', 2, 4);
খরচ<<strCol<< 'n';

আউটপুট: আমি তোমাকে ভালোবাসি। একটি ব্যতিক্রম এখানেও নিক্ষেপ করা হবে, পরে দেখুন।

বরাদ্দ করা

বেসিক_স্ট্রিং&বরাদ্দ করা(constবেসিক_স্ট্রিং&পৃ)

মূল স্ট্রিংয়ে আর্গুমেন্ট স্ট্রিং অবজেক্ট অ্যাসাইন করে, সেখানে যে কোনও সামগ্রী প্রতিস্থাপন করে।

স্ট্রিং strCol1=স্ট্রিং('আমি তোমাকে ভালোবাসি');
স্ট্রিং strCol2=স্ট্রিং('ওকে আমার দরকার');
strCol1=strCol1।বরাদ্দ করা(strCol2);
খরচ<<strCol1<< 'n';

আউটপুট: সে আমাকে প্রয়োজন।

বেসিক_স্ট্রিং&বরাদ্দ করা(constচার্ট*গুলি)

মূল স্ট্রিংয়ে একটি স্ট্রিং আক্ষরিক যুক্তি নির্ধারণ করে, সেখানে যে কোনও সামগ্রী প্রতিস্থাপন করে।

স্ট্রিং strCol=স্ট্রিং('আমি তোমাকে ভালোবাসি');
strCol=strCol।বরাদ্দ করা('ওকে আমার দরকার');
খরচ<<strCol<< 'n';

আউটপুট: সে আমাকে প্রয়োজন।

বেসিক_স্ট্রিং&বরাদ্দ করা(initializer_list<চার্ট>)

মূল স্ট্রিং -এ একটি প্রারম্ভিক তালিকা যুক্তি প্রদান করে,সেখানে যে কোনও সামগ্রী প্রতিস্থাপন করা হচ্ছে।
[সিসি ল্যাং='গ'পালিয়ে গেছে='সত্য'প্রস্থ='780']
স্ট্রিং strCol=স্ট্রিং('আমি তোমাকে ভালোবাসি');
strCol=strCol।বরাদ্দ করা({'এস','জ','এবং','','এন','এবং','এবং','ডি',এর,'','মি','এবং',' 0'});
খরচ<<strCol<< 'n';

আউটপুট: সে আমাকে প্রয়োজন। একটি স্ট্রিং আক্ষরিক গঠনের জন্য সর্বদা অক্ষর তালিকার শেষে ul 0 যোগ করা ভাল।

বেসিক_স্ট্রিং&বরাদ্দ করা(constচার্ট*গুলি,size_type n)

একটি স্ট্রিং আক্ষরিক আর্গুমেন্টের প্রথম n অক্ষরগুলিকে প্রধান স্ট্রিংয়ের জন্য বরাদ্দ করে, সেখানে থাকা কোনও সামগ্রী প্রতিস্থাপন করে।

স্ট্রিং strCol=স্ট্রিং('আমি তোমাকে ভালোবাসি');
strCol=strCol।বরাদ্দ করা('ওকে আমার দরকার', 9);
খরচ<<strCol<< 'n';

আউটপুট: তার প্রয়োজন।

বেসিক_স্ট্রিং&বরাদ্দ করা(size_type n,চার্ট গ)

মূল অক্ষরে একই অক্ষরগুলির একটি যুক্তি নির্ধারণ করে, সেখানে যে কোনও সামগ্রী প্রতিস্থাপন করে।

স্ট্রিং strCol=স্ট্রিং('আমি তোমাকে ভালোবাসি');
strCol=strCol।বরাদ্দ করা(4, 'এবং');
খরচ<<strCol<< 'n';

আউটপুট: eeee

বেসিক_স্ট্রিং&বরাদ্দ করা(constবেসিক_স্ট্রিং&পৃ,সাইজ টাইপ পজ,
size_type n=npos)

একটি স্ট্রিং অবজেক্ট আর্গুমেন্টের n অক্ষর নির্ধারণ করে, পজ থেকে শুরু করে, মূল স্ট্রিং পর্যন্ত, সেখানে থাকা যেকোনো বিষয়বস্তু প্রতিস্থাপন করে।

স্ট্রিং strCol=স্ট্রিং('আমি তোমাকে ভালোবাসি');
strCol=strCol।বরাদ্দ করা('ওকে আমার দরকার', 4, 5);
খরচ<<strCol<< 'n';

আউটপুট: প্রয়োজন। একটি ব্যতিক্রম নিক্ষেপ করবে - পরে দেখুন।

Insোকানো

বেসিক_স্ট্রিং&সন্নিবেশ করান(সাইজ টাইপ পজ, constবেসিক_স্ট্রিং&পৃ)

প্রধান স্ট্রিং এ স্ট্রিং অবজেক্ট আর্গুমেন্ট, ইনডেক্স, পোসে সন্নিবেশ করান।

স্ট্রিং strCol1=স্ট্রিং('আমি তোমাকে ভালোবাসি');
স্ট্রিং strCol2=স্ট্রিং('ঘৃণা এবং');
strCol1=strCol1।সন্নিবেশ করান(2,strCol2);
খরচ<<strCol1<< 'n';

আউটপুট: আমি তোমাকে ঘৃণা করি এবং ভালবাসি। একটি ব্যতিক্রম নিক্ষেপ করবে - পরে দেখুন।

বেসিক_স্ট্রিং&সন্নিবেশ করান(size_type pos1, constবেসিক_স্ট্রিং&
পৃ,size_type pos2,size_type n=npos)

স্ট্রিং অবজেক্ট আর্গুমেন্টের pos2 থেকে n অক্ষরের দৈর্ঘ্য, প্রধান স্ট্রিং, সূচকে, pos1 এ সন্নিবেশ করান।

স্ট্রিং strCol1=স্ট্রিং('আমি তোমাকে ভালোবাসি');
স্ট্রিং strCol2=স্ট্রিং('ঘৃণা, চাওয়া এবং প্রয়োজন');
strCol1=strCol1।সন্নিবেশ করান(2,strCol2, 6, 9);
খরচ<<strCol1<< 'n';

আউটপুট: আমি তোমাকে চাই এবং ভালবাসি।

পুনরাবৃত্ত সন্নিবেশ (const_iterator p, charT c)

একটি বিশেষ অক্ষর, যা একটি যুক্তি, পুনরাবৃত্তকারী দ্বারা নির্দেশিত অবস্থানে সন্নিবেশ করান। নতুন সন্নিবেশিত অক্ষরের অবস্থানের জন্য একটি পুনরাবৃত্তি প্রদান করে।

স্ট্রিং strCol=স্ট্রিং('আমি তোমাকে ভালোবাসি');
বেসিক_স্ট্রিং<গৃহস্থালি> ::পুনরাবৃত্তকারীইটার=strCol।শুরু();
++ইটার; ++ইটার; ++ইটার; ++ইটার; ++ইটার; ++ইটার;
বেসিক_স্ট্রিং<গৃহস্থালি> ::পুনরাবৃত্তকারীঅন্তর্জাল=strCol।সন্নিবেশ করান(ইটার, 'ডি');
খরচ<< *অন্তর্জাল<< 'n';
খরচ<<strCol<< 'n';

আউটপুট হল:

'ডি'

আমি তোমাকে ভালোবাসি

পুনরাবৃত্ত সন্নিবেশ (const_iterator p, size_type n, charT c)

যুক্তির একই চরিত্রের n সন্নিবেশ করান, অবস্থানে, পুনরাবৃত্তির দ্বারা নির্দেশিত। নতুন ertedোকানো একই অক্ষরের শুরুর অবস্থানের জন্য একটি পুনরাবৃত্তি প্রদান করে।

স্ট্রিং strCol=স্ট্রিং('জমিতে ট্যাব।');
বেসিক_স্ট্রিং<গৃহস্থালি> ::পুনরাবৃত্তকারীইটার=strCol।শুরু();
++ইটার; ++ইটার; ++ইটার;
বেসিক_স্ট্রিং<গৃহস্থালি> ::পুনরাবৃত্তকারীঅন্তর্জাল=strCol।সন্নিবেশ করান(ইটার, 2, 'অথবা');
খরচ<< *অন্তর্জাল<< 'n';
খরচ<<strCol<< 'n';

আউটপুট হল:

'অথবা'

দেশে নিষিদ্ধ।

বেসিক_স্ট্রিং&সন্নিবেশ করান(সাইজ টাইপ পজ, constচার্ট*গুলি)

ইনডেক্সে একটি আর্গুমেন্ট স্ট্রিং আক্ষরিক সন্নিবেশ করান, প্রধান স্ট্রিং এ অবস্থান।

স্ট্রিং strCol=স্ট্রিং('জমিতে ট্যাব।');
strCol=strCol।সন্নিবেশ করান(3, 'ওহ');
খরচ<<strCol<< 'n';

আউটপুট: জমিতে নিষিদ্ধ।

বেসিক_স্ট্রিং&সন্নিবেশ করান(সাইজ টাইপ পজ, constচার্ট*গুলি,size_type n)

আর্গুমেন্ট স্ট্রিং আক্ষরিক প্রথম n অক্ষর সন্নিবেশ করান, সূচীতে, প্রধান স্ট্রিং এ অবস্থান।

স্ট্রিং strCol=স্ট্রিং('জমিতে ট্যাব।');
strCol=strCol।সন্নিবেশ করান(3, 'উহু', 2);
খরচ<<strCol<< 'n';

আউটপুট: জমিতে নিষিদ্ধ।

প্রতিস্থাপন

বেসিক_স্ট্রিং&প্রতিস্থাপন(size_type pos1,size_type n1, constবেসিক_স্ট্রিং&পৃ))

সূচক, pos1 থেকে মূল স্ট্রিং বস্তুর n1 অক্ষরকে যুক্তি স্ট্রিং বস্তুর সাথে প্রতিস্থাপন করে।

স্ট্রিং strCol1=স্ট্রিং('আমি তোমাকে ভালোবাসি');
স্ট্রিং strCol2=স্ট্রিং('তোমাকে ঘৃণা করি এবং');
strCol1=strCol1।প্রতিস্থাপন(2, 4,strCol2);
খরচ<<strCol1<< 'n';

আউটপুট: আমি তোমাকে এবং তোমাকে ঘৃণা করি। একটি ব্যতিক্রম নিক্ষেপ করবে - পরে দেখুন।

বেসিক_স্ট্রিং&প্রতিস্থাপন(size_type pos1,size_type n1, constবেসিক_স্ট্রিং&
পৃ,size_type pos2,size_type n2=npos)

সূচী, pos1 থেকে প্রধান স্ট্রিং বস্তুর n1 অক্ষর প্রতিস্থাপন করে সূচক, pos2 থেকে আর্গুমেন্ট স্ট্রিং বস্তুর n2 অক্ষর দিয়ে।

স্ট্রিং strCol1=স্ট্রিং('আমি তোমাকে ভালোবাসি');
স্ট্রিং strCol2=স্ট্রিং('আমরা তাকে এবং তাকে ঘৃণা করি');
strCol1=strCol1।প্রতিস্থাপন(2, 4,strCol2, 3, 12);
খরচ<<strCol1<< 'n';

আউটপুট: আমি তাকে এবং তোমাকে ঘৃণা করি।

বেসিক_স্ট্রিং&প্রতিস্থাপন(size_type pos1,size_type n1, constচার্ট*গুলি,
size_type n2)

সূচক, pos1 থেকে প্রধান স্ট্রিং বস্তুর n1 অক্ষরকে আক্ষরিক স্ট্রিং যুক্তির প্রথম n2 অক্ষর দিয়ে প্রতিস্থাপন করে।

স্ট্রিং strCol1=স্ট্রিং('আমি তোমাকে ভালোবাসি');
strCol1=strCol1।প্রতিস্থাপন(2, 4, 'তাকে এবং তাকে ঘৃণা করুন', 12);
খরচ<<strCol1<< 'n';

আউটপুট: আমি তাকে এবং তোমাকে ঘৃণা করি।

বেসিক_স্ট্রিং এবং প্রতিস্থাপন (size_type pos, size_type n, const charT* s)

আক্ষরিক স্ট্রিং যুক্তির সাথে সূচক, পজ থেকে প্রধান স্ট্রিং বস্তুর n অক্ষর প্রতিস্থাপন করে।

স্ট্রিং strCol1=স্ট্রিং('আমি তোমাকে ভালোবাসি');
strCol1=strCol1।প্রতিস্থাপন(2, 4, 'তাকে ঘৃণা করুন এবং');
খরচ<<strCol1<< 'n';

আউটপুট: আমি তাকে এবং তোমাকে ঘৃণা করি।

বেসিক_স্ট্রিং&প্রতিস্থাপন(size_type pos1,size_type n1,size_type n2,চার্ট গ)

সূচী থেকে মূল স্ট্রিং বস্তুর n1 অক্ষর প্রতিস্থাপন করে, pos1, যুক্তির একই চরিত্রের n2 দিয়ে।

স্ট্রিং strCol1=স্ট্রিং('ওখানে একটা খারাপ ট্যাবলেট।');
strCol1=strCol1।প্রতিস্থাপন(9, 3, 2, 'অথবা');
খরচ<<strCol1<< 'n';

আউটপুট: সেখানে একটি খারাপ নিষিদ্ধ ..

পুনরাবৃত্ত মুছে ফেলা (const_iterator পি)

পুনরাবৃত্ত দ্বারা নির্দেশিত অবস্থানে একটি অক্ষর অপসারণ; তারপরে পুনরাবৃত্তির অবস্থানটি ফেরত দেয়, যা এখন এই চরিত্রের (বা শেষ ()) পাশে থাকা চরিত্র দ্বারা দখল করা হয়েছে। নিচের কোডটি এটিকে ব্যাখ্যা করে:

স্ট্রিং strCol=স্ট্রিং('এ বি সি ডি');
বেসিক_স্ট্রিং<গৃহস্থালি> ::পুনরাবৃত্তকারীইটার=strCol।শুরু();
++ইটার; ++ইটার;
strCol।মুছে ফেলা(ইটার);
খরচ<<strCol[0] << '' <<strCol[] << '
'
<<strCol[2]<< 'n';

আউটপুট: a b d

বেসিক_স্ট্রিং&মুছে ফেলা(সাইজ টাইপ পজ= 0,size_type n=npos)

সূচক থেকে n অক্ষর অপসারণ, pos।

স্ট্রিং strCol=স্ট্রিং('এ বি সি ডি');
strCol।মুছে ফেলা(, 2);
খরচ<<strCol[0] << '' <<strCol[] << 'n';

আউটপুট: একটি d

অকার্যকর push_back (charT c)

স্ট্রিংয়ের শেষে একটি অক্ষর যুক্ত করতে:

স্ট্রিং strCol=স্ট্রিং('এ বি সি ডি');
strCol।ফেরত পাঠাও('5');
খরচ<<strCol<< 'n';

আউটপুট: abcd5

অকার্যকর pop_back ()

শেষ চরিত্রটি ফেরত না দিয়ে সরিয়ে দেয়। স্ট্রিং এর আকার 1 দ্বারা হ্রাস করা হয়।

স্ট্রিং strCol=স্ট্রিং('abcde');
strCol।ফিরে পপ();
খরচ<<strCol<< 'n';

আউটপুট: abcd

অকার্যকর অদলবদল (বেসিক_স্ট্রিং & গুলি)

দুটি স্ট্রিং বস্তুর আক্ষরিক অদলবদল করা যায়।

স্ট্রিং strCol1=স্ট্রিং(<সাহায্য='post-69618 -__ DdeLink__781_3724385525'>প্রতি>'abcde');
স্ট্রিং strCol2=স্ট্রিং('1234567');
strCol1।বিনিময়(strCol2);
খরচ<<strCol1<< 'n';
খরচ<<strCol2<< 'n';

আউটপুট হল:

'1234567'
'abcde'

স্ট্রিং অপারেশন

const charT* c_str () const noexcept

স্ট্রিং এর প্রথম উপাদানটিতে একটি পয়েন্টার প্রদান করে। পয়েন্টার বৃদ্ধি করা যেতে পারে।

constস্ট্রিং strCol=স্ট্রিং('abcde');
const গৃহস্থালি*পৃ=strCol।c_str();
খরচ<< *পৃ<< 'n';
++পৃ;
খরচ<< *পৃ<< 'n';

আউটপুট হল:

প্রতি

শিরোনামে দ্বিতীয় কনস্টের কারণে, প্রোগ্রামটি স্ট্রিংয়ের কোন অক্ষর পরিবর্তন করতে পারে না। নির্মাণের আগে কনস্ট।

const charT* data () const noexcept

স্ট্রিং এর প্রথম উপাদানটিতে একটি পয়েন্টার প্রদান করে। পয়েন্টার বৃদ্ধি করা যেতে পারে।

constস্ট্রিং strCol=স্ট্রিং('abcde');
const গৃহস্থালি*পৃ=strCol।তথ্য();
খরচ<< *পৃ<< 'n';
++পৃ;
খরচ<< *পৃ<< 'n';

আউটপুট হল:

প্রতি

শিরোনামে দ্বিতীয় কনস্টের কারণে, প্রোগ্রামটি স্ট্রিংয়ের কোন অক্ষর পরিবর্তন করতে পারে না। নির্মাণের আগে কনস্ট।

basic_string substr (size_type pos = 0, size_type n = npos) const

সূচী থেকে শুরু হওয়া সাব-স্ট্রিং-এর জন্য n অক্ষরের একটি স্ট্রিং বস্তু প্রদান করে।

constস্ট্রিং strCol=স্ট্রিং('abcdefghij');
constস্ট্রিং retStr=strCol।স্তর(2, 4);
খরচ<<retStr<< 'n';

আউটপুট: cdef

find () সদস্য ফাংশন

size_type find (const basic_string & str, size_type pos = 0) const noexcept

সূচী থেকে শুরু করে একটি উপ-স্ট্রিং বস্তুর সন্ধান করে, pos। যদি পাওয়া যায়, প্রধান স্ট্রিং-এ সাব-স্ট্রিং-এর শুরুটা ফেরত দেয়।

স্ট্রিং strCol=স্ট্রিং('আমরাই বিশ্ব!');
স্ট্রিং strCol1=স্ট্রিং('দ্য');
intএকের উপর=strCol।অনুসন্ধান(strCol1, 2);
খরচ<<একের উপর<< 'n';

আউটপুট:

সূচক: 7
রিটার্ন -1, যখন পাওয়া যায় না।

size_type find (const charT* s, size_type pos = 0) const

সূচী থেকে একটি সাব-স্ট্রিং আক্ষরিক শুরু, পোস। যদি পাওয়া যায়, প্রধান স্ট্রিং-এ সাব-স্ট্রিং-এর শুরুটা ফেরত দেয়।

স্ট্রিং strCol=স্ট্রিং('আমরাই বিশ্ব!');
intএকের উপর=strCol।অনুসন্ধান('হয়', 0);
খরচ<<একের উপর<< 'n';

যেহেতু pos = 0 হল ডিফল্ট, যুক্তিতে 0 বাদ দেওয়া যেত।

আউটপুট: 3

রিটার্ন -1, যখন পাওয়া যায় না।

size_type find (const charT* s, size_type pos, size_type n) const

সূচী থেকে একটি সাব-স্ট্রিং আক্ষরিক প্রথম n অক্ষরের সন্ধান করে, pos। যদি পাওয়া যায়, প্রধান স্ট্রিং-এ সাব-স্ট্রিং-এর শুরুটা ফেরত দেয়।

স্ট্রিং strCol=স্ট্রিং('সবচেয়ে বড় ছেলে');
intএকের উপর=strCol।অনুসন্ধান('বড়', , 3);
খরচ<<একের উপর<< 'n';

আউটপুট: 4

রিটার্ন -1, যখন পাওয়া যায় না।

size_type find (charT c, size_type pos = 0) const

চরিত্রের সন্ধান করে, সূচক থেকে শুরু, পজ। যদি পাওয়া যায়, প্রধান স্ট্রিং-এ সাব-স্ট্রিং-এর শুরুটা ফেরত দেয়। যদি না পাওয়া যায়, রিটার্ন -1।

স্ট্রিং strCol=স্ট্রিং('আমরাই বিশ্ব!');
intএকের উপর=strCol।অনুসন্ধান('সঙ্গে');
খরচ<<একের উপর<< 'n';

আউটপুট: -1

নিম্নলিখিত বিপরীত find () সদস্য ফাংশন বিদ্যমান:

size_type rfind(constবেসিক_স্ট্রিং&পৃ,সাইজ টাইপ পজ=npos) constব্যতিক্রম;
size_type rfind(constচার্ট*গুলি,সাইজ টাইপ পজ=npos) const;
size_type rfind(constচার্ট*গুলি,সাইজ টাইপ পজ,size_type n) const;
size_type rfind(চার্ট গ,সাইজ টাইপ পজ=npos) const;

তুলনা সদস্যের কার্যাবলী

int তুলনা (const basic_string & str) const noexcept

আর্গুমেন্ট স্ট্রিং বস্তুকে প্রধান স্ট্রিং বস্তুর সাথে তুলনা করে। যদি মূল স্ট্রিংটি যুক্তির আগে (অভিধানে) হয় তবে এটি একটি ধনাত্মক সংখ্যা প্রদান করে। যদি এটি প্রধান স্ট্রিং এর পরে ঘটে, এটি একটি negativeণাত্মক সংখ্যা প্রদান করে। যদি দুটি স্ট্রিং একই হয়, এটি শূন্য প্রদান করে।

স্ট্রিং strCol1=স্ট্রিং('ভিড়');
স্ট্রিং strCol2=স্ট্রিং('মানুষ');
intএকের উপর=strCol1।তুলনা করা(strCol2);
খরচ<<একের উপর<< 'n';

আউটপুট: -13

int তুলনা (const charT* s) const

উপরের মতই, কিন্তু যুক্তিটি একটি স্ট্রিং আক্ষরিক।

স্ট্রিং strCol1=স্ট্রিং('মানুষ');
intএকের উপর=strCol1।তুলনা করা('মানুষ');
খরচ<<একের উপর<< 'n';

আউটপুট: 0

স্ট্রিং অপারেটর

এই অপারেটরগুলি স্ট্রিং বস্তুর ক্ষেত্রে প্রযোজ্য এবং অগত্যা স্ট্রিং লিটারেল নয়।

+

দুটি স্ট্রিং বস্তুকে সংযোজিত করে, এবং সংযোজন ফিরিয়ে দেয়।

স্ট্রিং strCol1=স্ট্রিং('নাচছে');
স্ট্রিং strCol2=স্ট্রিং(' চাঁদ');
স্ট্রিং strCol=strCol1+strCol2;
খরচ<<strCol<< 'n';

আউটপুট: চাঁদে নাচ।

==

সত্যের জন্য 1 প্রদান করে, যদি স্ট্রিং বস্তু একই হয়; এবং মিথ্যা জন্য শূন্য, যদি তারা না হয়।

স্ট্রিং strCol1=স্ট্রিং('নাচছে');
স্ট্রিং strCol2=স্ট্রিং(' চাঁদে');
বুল bl=strCol1==strCol2;
খরচ<<bl<< 'n';

আউটপুট: 0

! =

স্ট্রিং বস্তু একই না হলে 1 প্রদান করে, এবং যদি তারা শূন্য হয়।

স্ট্রিং strCol1=স্ট্রিং('নাচছে');
স্ট্রিং strCol2=স্ট্রিং(' চাঁদে');
বুল bl=strCol1! =strCol2;
খরচ<<bl<< 'n';

আউটপুট: 1

<

রিটার্ন 1, যদি বাম অপারেন্ড ডিকশনারি অনুযায়ী ডান অপারেন্ডের চেয়ে কম হয়, অথবা না থাকলে শূন্য।

স্ট্রিং strCol1=স্ট্রিং('নাচছে');
স্ট্রিং strCol2=স্ট্রিং(' চাঁদে');
বুল bl=strCol1<strCol2;
খরচ<<bl<< 'n';

আউটপুট: 0

C ++ এ সাধারণ অক্ষরের জন্য, আরোহী ক্রমে, সংখ্যাগুলি বড় হাতের অক্ষরের আগে আসে, যা ছোট হাতের অক্ষরের আগে আসে। শূন্য অক্ষর শূন্য এবং তাদের সবার আগে আসে।

C ++ প্রধান স্ট্রিং অক্ষরের ধরন

গৃহস্থালি

গৃহস্থালি টাইপটি আসল সি ++ টাইপ এবং সাধারণত একটি অক্ষর 8 বিটে সংরক্ষণ করে।

char16_t

এটি 16 বিটে একটি অক্ষর সঞ্চয় করে।

char32_t

এটি 32 বিটে একটি অক্ষর সঞ্চয় করে।

wchar_t

char16_t এবং char32_t হল বিস্তৃত অক্ষর। wchar_t একটি বিস্তৃত চরিত্র যা মালিকানা এবং বাস্তবায়ন-সংজ্ঞায়িত।

এই ধরনের বৈশিষ্ট্য বলা হয় বৈশিষ্ট্য। যাইহোক, C ++ তাদের প্রযুক্তিগতভাবে বৈশিষ্ট্যগুলির বিশেষত্ব হিসাবে উল্লেখ করে। এই নিবন্ধটি চর ধরনের উপর দৃষ্টি নিবদ্ধ করেছে। অন্যান্য প্রকারের পদ্ধতি কিছুটা আলাদা - পরে দেখুন।

অন্যান্য স্ট্রিং অপারেশন সদস্য ফাংশন

অন্যান্য স্ট্রিং অপারেশন ফাংশনের স্বাক্ষর হল:

size_type find_first_of(constবেসিক_স্ট্রিং&পৃ,সাইজ টাইপ পজ= 0) constব্যতিক্রম;
size_type find_first_of(constচার্ট*গুলি,সাইজ টাইপ পজ,size_type n) const;
size_type find_first_of(constচার্ট*গুলি,সাইজ টাইপ পজ= 0) const;
size_type find_first_of(চার্ট গ,সাইজ টাইপ পজ= 0) const;
size_type find_last_of(constবেসিক_স্ট্রিং&পৃ,সাইজ টাইপ পজ=npos) constব্যতিক্রম;
size_type find_last_of(constচার্ট*গুলি,সাইজ টাইপ পজ,size_type n) const;
size_type find_last_of(constচার্ট*গুলি,সাইজ টাইপ পজ=npos) const;
size_type find_last_of(চার্ট গ,সাইজ টাইপ পজ=npos) const;
size_type find_first_not_of(constবেসিক_স্ট্রিং&পৃ,সাইজ টাইপ পজ= 0) constব্যতিক্রম;
size_type find_first_not_of(constচার্ট*গুলি,সাইজ টাইপ পজ,size_type n) const;
size_type find_first_not_of(constচার্ট*গুলি,সাইজ টাইপ পজ= 0) const;
size_type find_first_not_of(চার্ট গ,সাইজ টাইপ পজ= 0) const;
size_type find_last_not_of(constবেসিক_স্ট্রিং&পৃ,সাইজ টাইপ পজ=npos) constব্যতিক্রম;
size_type find_last_not_of(constচার্ট*গুলি,সাইজ টাইপ পজ,size_type n) const;
size_type find_last_not_of(constচার্ট*গুলি,সাইজ টাইপ পজ=npos) const;
size_type find_last_not_of(চার্ট গ,সাইজ টাইপ পজ=npos) const;

উপসংহার

C ++ এর স্ট্রিং লিটারেল এবং স্ট্রিং অবজেক্ট রয়েছে। স্ট্রিং অবজেক্টে ক্রম অনুসারে অক্ষরের একটি সংগ্রহ রয়েছে, যা ক্রমের অক্ষরের একটি অ্যারের মতো। স্ট্রিং সংগ্রহ এবং একটি অ্যারের মধ্যে পার্থক্য হল, স্ট্রিং সংগ্রহ দৈর্ঘ্যে বৃদ্ধি পেতে পারে বা দৈর্ঘ্যে সঙ্কুচিত হতে পারে। একটি স্ট্রিং বস্তু একটি স্ট্রিং ক্লাস থেকে তাত্ক্ষণিকভাবে (নির্মিত) হয়। স্ট্রিং অবজেক্ট হল সদস্য ফাংশন সহ একটি ডাটা স্ট্রাকচার। অবজেক্ট নির্মাণ, এলিমেন্ট অ্যাক্সেস, স্ট্রিং ক্যাপাসিটি, স্ট্রিং মেম্বার ফাংশন ইটারেটর আর্গুমেন্টস এবং রিটার্ন টাইপস এবং স্ট্রিং মডিফায়ারের শিরোনামে সদস্য ফাংশন শ্রেণীবদ্ধ করা যায়। স্ট্রিং সমতা এবং রিলেশনাল অপারেটরও বিদ্যমান।