এখানে, আমাদের একটি strcmp (স্ট্রিং তুলনা) ফাংশন তৈরি করতে হবে যা দুটি স্ট্রিং তুলনা করে কিন্তু স্ট্রিংয়ের অক্ষরের ক্ষেত্রে উপেক্ষা করে। ফাংশনটি ফিরবে -1 if string1
সমস্যাটি বোঝার জন্য একটি উদাহরণ দেওয়া যাক,
ইনপুট
string1 = “Hello” , string2 = “hello”
আউটপুট
0
আমাদের নিজস্ব strcmp ফাংশন তৈরি করতে যা স্ট্রিং তুলনা করার সময় কেস উপেক্ষা করে। আমরা উভয় স্ট্রিং এর সমস্ত অক্ষরের মাধ্যমে পুনরাবৃত্তি করব, যদি ith সূচকের অক্ষরগুলি একই হয় যেমন string1[i] ==string2[i], চালিয়ে যান। যদি string1[i]> string2[i], রিটার্ন 1. যদি string1[i]
এখানে, আমাদের কেস উপেক্ষা করতে হবে, তাই A এবং a একই হিসাবে বিবেচিত হবে। আমরা অক্ষরের ASCII মান ব্যবহার করব, তারপর a =97-এর জন্য ASCII হবে A =65-এর ASCII-এর সমান।
আমাদের সমাধানের বাস্তবায়ন দেখানোর জন্য প্রোগ্রাম,উদাহরণ
#include <iostream>
using namespace std;
int strcmpFunc(string string1, string string2){
int i;
for (i = 0; string1[i] && string2[i]; ++i){
if (string1[i] == string2[i] || (string1[i] ^ 32) == string2[i])
continue;
else
break;
}
if (string1[i] == string2[i])
return 0;
if ((string1[i] | 32) < (string2[i] | 32))
return -1;
return 1;
}
int main(){
cout<<"Compareing string using our strcmp function :\n";
cout<<"Result: "<<strcmpFunc("HELLO", "hello")<<endl;
cout<<"Result: "<<strcmpFunc("", "Hello")<<endl;
cout<<"Result: "<<strcmpFunc("Tutorials", "Pint")<<endl;
cout<<"Result: "<<strcmpFunc("afdadsa", "rewf")<<endl;
cout<<"Result: "<<strcmpFunc("tutorialspoint", "TUTORIALSpoint")<<endl;
return 0;
}
আউটপুট
Compareing string using our strcmp function −
Result: 0
Result: -1
Result: 1
Result: -1
Result: 0