এখানে আমরা দেখব কিভাবে স্ট্রিং লাইব্রেরি ফাংশনগুলি C++ এ স্ট্রিংগুলিকে মেলানোর জন্য ব্যবহার করা যেতে পারে। এখানে আমরা মূল স্ট্রিং-এ সাবস্ট্রিং-এর উপস্থিতি পেতে find() অপারেশন ব্যবহার করছি। এই find() পদ্ধতিটি প্রথম অবস্থান প্রদান করে যেখানে স্ট্রিং পাওয়া যায়। এখানে আমরা সমস্ত মিল পেতে এই find() ফাংশনটি একাধিকবার ব্যবহার করছি।
আইটেম পাওয়া গেলে, এই ফাংশন অবস্থান ফেরত. কিন্তু যদি এটি পাওয়া না যায়, এটি স্ট্রিং::npos.
ফেরত দেবেতাই সাবস্ট্রিংটি মূল স্ট্রিং-এ উপস্থিত আছে কিনা তা পরীক্ষা করার জন্য, আমাদের find() এর রিটার্ন মানটি স্ট্রিং::npos বা না তা পরীক্ষা করতে হবে।
এখানে আমরা সহজভাবে অবস্থান পাচ্ছি যেখানে সাবস্ট্রিং উপস্থিত রয়েছে।
Input: The main string “aabbabababbbaabb” and substring “abb” Output: The locations where the substrings are found. [1, 8, 13]
অ্যালগরিদম
স্ট্রিং_ফাইন্ড(main_str, sub_str)
ইনপুট − প্রধান স্ট্রিং এবং চেক করার সাবস্ট্রিং
আউটপুট − প্রধান স্ট্রিং-এ সাবস্ট্রিং-এর অবস্থান
pos := 0 while index = first occurrence of sub_str into the str in range pos to end of the string, do print the index as there is a match pos := index + 1 done
উদাহরণ কোড
#include using namespace std; main() { string str1 = "aabbabababbbaabb"; string str2 = "abb"; int pos = 0; int index; while((index = str1.find(str2, pos)) != string::npos) { cout << "Match found at position: " << index << endl; pos = index + 1; //new position is from next element of index } }থেকে
আউটপুট
Match found at position: 1 Match found at position: 8 Match found at position: 13