ที่นี่ เราต้องสร้างฟังก์ชัน 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