Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> C++

เขียน strcmp ของคุณเองที่ละเว้นกรณีใน C ++


ที่นี่ เราต้องสร้างฟังก์ชัน strcmp (การเปรียบเทียบสตริง) ที่เปรียบเทียบสองสตริง แต่ละเว้นกรณีของอักขระในสตริง ฟังก์ชันจะคืนค่า -1 ถ้า string1 string2.

มาดูตัวอย่างเพื่อทำความเข้าใจปัญหากัน

อินพุต

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