यहां, हमें एक strcmp (स्ट्रिंग तुलना) फ़ंक्शन बनाना है जो दो स्ट्रिंग की तुलना करता है लेकिन स्ट्रिंग के वर्णों के मामलों को अनदेखा करता है। फ़ंक्शन -1 लौटाएगा यदि string1
समस्या को समझने के लिए एक उदाहरण लेते हैं,
इनपुट
string1 = “Hello” , string2 = “hello”
आउटपुट
0
अपना स्वयं का strcmp फ़ंक्शन बनाने के लिए जो स्ट्रिंग्स की तुलना करते समय मामलों की उपेक्षा करता है। हम दोनों स्ट्रिंग्स के सभी वर्णों के माध्यम से पुनरावृति करेंगे, यदि ith अनुक्रमणिका के वर्ण समान हैं अर्थात string1[i] ==string2[i], जारी रखें। अगर string1[i]> string2[i], रिटर्न 1. अगर string1[i]
यहां, हमें मामलों को अनदेखा करना है, इसलिए ए और ए को समान माना जाएगा। हम वर्णों के 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