วิธีเปรียบเทียบสตริงใน C++

How Compare String C



การเปรียบเทียบสตริงเป็นงานทั่วไปสำหรับภาษาการเขียนโปรแกรมใดๆ ส่วนใหญ่จะใช้สำหรับการตรวจสอบความถูกต้องของข้อมูล เช่น การตรวจสอบชื่อผู้ใช้และรหัสผ่านของข้อมูลการเข้าสู่ระบบ การเปรียบเทียบสตริงสามารถทำได้โดยใช้ตัวดำเนินการเปรียบเทียบหรือใช้ฟังก์ชันในตัว ฟังก์ชันเปรียบเทียบสตริงสองฟังก์ชันที่ใช้ใน C ++ ได้แก่ strcmp() และ เปรียบเทียบ() . NS strcmp() เป็นฟังก์ชันไลบรารีของ C เพื่อเปรียบเทียบสองสตริง ค ompare () เป็นฟังก์ชันในตัวของ C++ เพื่อเปรียบเทียบสองสตริง วิธีเปรียบเทียบสตริงโดยใช้ตัวดำเนินการเปรียบเทียบและฟังก์ชันได้อธิบายไว้ในบทช่วยสอนนี้

ข้อกำหนดเบื้องต้น:

ก่อนตรวจสอบตัวอย่างของบทช่วยสอนนี้ คุณต้องตรวจสอบก่อนว่าคอมไพเลอร์ g++ ติดตั้งหรือไม่อยู่ในระบบ หากคุณกำลังใช้ Visual Studio Code ให้ติดตั้งส่วนขยายที่จำเป็นเพื่อคอมไพล์ซอร์สโค้ด C++ เพื่อสร้างโค้ดที่เรียกใช้งานได้ ที่นี่ แอปพลิเคชัน Visual Studio Code ถูกใช้เพื่อคอมไพล์และรันโค้ด C++







การใช้ตัวดำเนินการเปรียบเทียบเพื่อเปรียบเทียบสตริง:

วิธีทั่วไปที่สุดในการเปรียบเทียบสตริงใน C ++ คือการใช้ตัวดำเนินการเปรียบเทียบ สิ่งเหล่านี้มีค่าเท่ากัน (==) และไม่เท่ากัน (!=) โอเปอเรเตอร์ สร้างไฟล์ C++ ด้วยรหัสต่อไปนี้เพื่อเปรียบเทียบค่าสตริงสองค่าโดยใช้ตัวดำเนินการเปรียบเทียบ ตามรหัส ที่อยู่ URL จะถูกนำมาจากผู้ใช้และเปรียบเทียบกับสตริงอื่นๆ โดยใช้ตัวดำเนินการเท่ากับ (==) หากค่าที่ป้อนเข้าตรงกับสตริงใดๆ ของเงื่อนไข 'if' ข้อความเฉพาะจะถูกพิมพ์ มิฉะนั้น ข้อความของส่วน 'อื่น' จะแสดงขึ้น



// รวมไลบรารีที่จำเป็น

#รวม

ใช้เนมสเปซ std;

intmain() {
// ประกาศตัวแปรสตริง
สตริง url_addr;
// รับที่อยู่ url จากผู้ใช้
ค่าใช้จ่ายurl_addr;
// เปรียบเทียบค่าอินพุตกับสตริงอื่นโดยใช้ตัวดำเนินการเทียบเท่า
ถ้า(url_addr== 'Google คอม')
ค่าใช้จ่าย<<'มันเป็นเครื่องมือค้นหา wensite'<<endl;
Elseif(url_addr== 'jooble.org')
ค่าใช้จ่าย<<'เป็นเว็บไซต์หางาน'<<endl;
Elseif(url_addr== 'linuxhint.com')
ค่าใช้จ่าย<<'มันเป็นเว็บไซต์บล็อก'<<endl;
อื่น
ค่าใช้จ่าย<<'ไม่มีการเพิ่มข้อมูลสำหรับไซต์นี้'<<endl;

ผลตอบแทน0;
}

เอาท์พุท:



หลังจากรันโค้ดแล้ว หากผู้ใช้พิมพ์ ‘ linuxhint.com 'เป็นข้อมูล' เงื่อนไข 'ถ้า' ที่สามจะถูกส่งคืน จริง, และผลลัพธ์ต่อไปนี้จะปรากฏขึ้น





ใช้ฟังก์ชันเปรียบเทียบ () เพื่อเปรียบเทียบสตริง:

ฟังก์ชันเปรียบเทียบ () เปรียบเทียบสองสตริงและคืนค่า 0 หรือ 1 หรือ -1 ตามผลการจับคู่ของการเปรียบเทียบ ความหมายของค่าที่ส่งกลับได้รับด้านล่าง



  • ฟังก์ชันจะคืนค่า 0 เมื่อสตริงเปรียบเทียบทั้งสองมีค่าเท่ากัน
  • ฟังก์ชันจะคืนค่า 1 เมื่อสตริงแรกมากกว่าสตริงที่สอง
  • ฟังก์ชันจะคืนค่า -1 เมื่อสตริงแรกน้อยกว่าสตริงที่สอง

ไวยากรณ์:

intสตริง1เปรียบเทียบ(string2)

สร้างไฟล์ C++ ด้วยรหัสต่อไปนี้เพื่อเปรียบเทียบค่าสตริงสองค่ากับค่าอินพุตสองค่าโดยใช้ฟังก์ชันเปรียบเทียบ () การตรวจสอบสิทธิ์ของผู้ใช้ทุกคนสามารถตรวจสอบได้โดยการเปรียบเทียบค่าที่ผู้ใช้ส่งมากับค่าของผู้ใช้ที่ตรวจสอบสิทธิ์ กระบวนการรับรองความถูกต้องนี้ได้รับการนำไปใช้ในรหัสต่อไปนี้ ที่อยู่อีเมลและรหัสผ่านที่ถูกต้องถูกเก็บไว้เป็นตัวแปรสตริงสองตัวที่นี่ ต่อไป ค่าเหล่านี้ได้เปรียบเทียบกับที่อยู่อีเมลและรหัสผ่านที่นำมาจากผู้ใช้ที่ใช้ เปรียบเทียบ () การทำงาน. ตรรกะ และ มีการใช้โอเปอเรเตอร์ในรหัสเพื่อตรวจสอบสิทธิ์ผู้ใช้ ข้อความแสดงความสำเร็จจะถูกพิมพ์หากทั้งสองฟังก์ชันเปรียบเทียบ () คืนค่า True มิฉะนั้น ข้อความแสดงความล้มเหลวจะถูกพิมพ์ออกมา

// รวมไลบรารีที่จำเป็น

#รวม

ใช้เนมสเปซ std;

intmain() {

//กำหนดค่าเริ่มต้นสองตัวแปรสตริง
อีเมลสตริง(' [ป้องกันอีเมล] ');
รหัสผ่านสตริง('ลินุกซ์ชิน');
//ประกาศตัวแปรสตริงสองตัว
สตริง user_email;
ผู้ใช้สตริง_รหัสผ่าน;

//รับอีเมลจากผู้ใช้
ค่าใช้จ่ายuser_email;

//รับรหัสผ่านจากผู้ใช้
ค่าใช้จ่ายuser_password;

//ตรวจสอบชื่อผู้ใช้ว่ารหัสผ่านถูกต้องหรือไม่ถูกต้อง
ถ้า (ผู้ใช้_อีเมลเปรียบเทียบ(อีเมล) == 0&&ผู้ใช้_รหัสผ่านเปรียบเทียบ(รหัสผ่าน) == 0 )
ค่าใช้จ่าย<<'การรับรองความถูกต้องสำเร็จ'<<endl;
อื่น
ค่าใช้จ่าย<<'อีเมลหรือรหัสผ่านไม่ถูกต้อง'<<endl;

ผลตอบแทน0;
}

เอาท์พุท:

หลังจากรันโค้ดแล้ว หากผู้ใช้พิมพ์ ‘ [ป้องกันอีเมล] ' เป็นที่อยู่อีเมลและ ' 12345 'เป็นรหัสผ่านเงื่อนไข 'ถ้า' ที่สามจะถูกส่งคืน เท็จ, และผลลัพธ์ต่อไปนี้จะปรากฏขึ้น

หลังจากรันโค้ดอีกครั้ง หากผู้ใช้พิมพ์ ‘ [ป้องกันอีเมล] ' เป็นที่อยู่อีเมลและ ' linuxhint 'เป็นรหัสผ่านเงื่อนไข 'ถ้า' ที่สามจะถูกส่งคืน จริง, และผลลัพธ์ต่อไปนี้จะปรากฏขึ้น

การใช้ฟังก์ชัน strcmp() เพื่อเปรียบเทียบสตริง:

strcmp() เป็นอีกฟังก์ชันหนึ่งที่ใช้เปรียบเทียบสตริงใน C++ คืนค่า จริง หากสตริงเปรียบเทียบทั้งสองมีค่าเท่ากัน พารามิเตอร์อินพุตที่ใช้โดยฟังก์ชันนี้แตกต่างจากฟังก์ชันเปรียบเทียบ () ฟังก์ชันเปรียบเทียบใช้ค่าสตริงเป็นพารามิเตอร์ และฟังก์ชัน strcmp() ใช้อาร์เรย์ถ่านเป็นพารามิเตอร์ ไวยากรณ์ของฟังก์ชันนี้ได้รับด้านล่าง

ไวยากรณ์:

int strcmp ( const char *str1, const char *str2);

สร้างไฟล์ C++ ด้วยรหัสต่อไปนี้เพื่อเปรียบเทียบสองสตริงโดยใช้ฟังก์ชัน strcmp() มีการประกาศอาร์เรย์อักขระสองตัว 100 องค์ประกอบในโค้ดเพื่อเก็บค่าสตริงที่ผู้ใช้ใช้ NS getline() ฟังก์ชันใช้เพื่อเก็บข้อมูลอินพุตของผู้ใช้ลงในตัวแปรอาร์เรย์ถ่าน ต่อไป strcmp() ได้ใช้ตรวจสอบค่าที่ป้อนเข้าว่าเท่ากันหรือไม่ หากฟังก์ชันส่งคืน จริง, จากนั้นข้อความแสดงความสำเร็จจะถูกพิมพ์ มิฉะนั้นจะพิมพ์ข้อความแสดงข้อผิดพลาด

//รวมไลบรารีที่จำเป็น

#รวม

#รวม

ใช้เนมสเปซ std;

intmain() {
// Delare สองตัวแปรสตริง
charchrData1[100],chrData2[100];

// รับข้อมูลสตริงแรก
ค่าใช้จ่าย<<'ป้อนสตริงแรก:';
จิน.getline(chrData1, 100);
// รับข้อมูลสตริงที่สอง
ค่าใช้จ่าย<<'ป้อนสตริงที่สอง:';
จิน.getline(chrData2, 100);

ถ้า ( strcmp (chrData1,chrData2)==0)
printf ('สตริงเท่ากันNS');
อื่น
printf ('สตริงไม่เท่ากันNS');

ผลตอบแทน0;
}

เอาท์พุท:

หลังจากรันโค้ดแล้ว ค่าสตริง ' สวัสดี ' ถูกกำหนดสำหรับค่าอินพุตทั้งสอง และผลลัพธ์ต่อไปนี้จะปรากฏขึ้น

บทสรุป:

สามวิธีในการเปรียบเทียบสตริงใน C ++ ได้แสดงไว้ในบทช่วยสอนนี้โดยใช้ตัวอย่างง่ายๆ สามตัวอย่าง ทั้งการใช้ตัวดำเนินการเปรียบเทียบและฟังก์ชันในตัวสำหรับตรวจสอบความเท่าเทียมกันของสตริงได้รับการอธิบายไว้ในบทช่วยสอนนี้เพื่อช่วยโปรแกรมเมอร์ C++ ใหม่