ที่นี่ เราต้องสร้างฟังก์ชัน strcmp (การเปรียบเทียบสตริง) ที่เปรียบเทียบสองสตริง แต่ละเว้นกรณีของอักขระในสตริง ฟังก์ชันจะคืนค่า -1 ถ้า string1
มาดูตัวอย่างเพื่อทำความเข้าใจปัญหากัน
อินพุต
string1 = “Hello” , string2 = “hello”
ผลลัพธ์
0
เพื่อสร้างฟังก์ชัน strcmp ของเราเองที่ละเว้นกรณีในขณะที่เปรียบเทียบสตริง เราจะวนซ้ำอักขระทั้งหมดของทั้งสองสตริง หากอักขระที่ดัชนี ith เหมือนกัน เช่น string1[i] ==string2[i] ให้ดำเนินการต่อ ถ้า string1[i]> string2[i] ให้คืนค่า 1 ถ้า string1[i]
ในที่นี้เราต้องละเว้นกรณีต่างๆ ดังนั้น A และ a จะถือว่าเหมือนกัน เราจะใช้ค่า ASCII ของอักขระ จากนั้น ASCII สำหรับ a =97 จะเท่ากับ ASCII ของ A =65
โปรแกรมแสดงการใช้งานโซลูชันของเราตัวอย่าง
#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