เนื้อหา
การเปรียบเทียบความยาวสตริงเป็นฟังก์ชันที่ใช้กันทั่วไปในภาษาโปรแกรมซีเนื่องจากช่วยให้คุณทราบว่าสตริงใดมีอักขระมากกว่า สิ่งนี้มีประโยชน์มากสำหรับการจัดเรียงข้อมูล การเปรียบเทียบสตริงต้องใช้ฟังก์ชันพิเศษ ดังนั้นอย่าใช้: != หรือ ==.
ที่จะก้าว
- มีสองฟังก์ชันที่ช่วยให้คุณสามารถเปรียบเทียบสตริงใน C ทั้งสองอย่างรวมอยู่ในไฟล์ สตริง. h>ไลบรารีรหัส
- strcmp () - ฟังก์ชันนี้จะเปรียบเทียบสองสตริงและส่งกลับค่าความแตกต่างของจำนวนอักขระ
- strncmp () - นอกจากนี้ยังใช้กับ strcmp ()ยกเว้นว่าอันนี้เป็นอันแรก n เปรียบเทียบตัวละคร ถือว่าปลอดภัยมากขึ้นเนื่องจากช่วยป้องกันไม่ให้เกิดปัญหาล้น
- รันโปรแกรมด้วยไลบรารีที่จำเป็น คุณมีทั้งไลบรารี stdio.h> และ สตริง. h> จำเป็นพร้อมกับไลบรารีอื่น ๆ ที่คุณอาจต้องการสำหรับโปรแกรมของคุณ
#include stdio.h> [[รูปภาพ: เปรียบเทียบสองสตริงในการเขียนโปรแกรม C ขั้นตอนที่ 1 เวอร์ชัน 4.webp | center]] #include string.h>
- เริ่มต้นอย่างใดอย่างหนึ่งintฟังก์ชัน นี่เป็นวิธีที่ง่ายที่สุดในการเรียนรู้ฟังก์ชันนี้เนื่องจากจะส่งกลับจำนวนเต็มโดยเปรียบเทียบความยาวของสตริงทั้งสอง
[[รูปภาพ: เปรียบเทียบสองสตริงในการเขียนโปรแกรม C ขั้นตอนที่ 2 เวอร์ชัน 4.webp | center]] #include stdio.h> [[รูปภาพ: เปรียบเทียบสองสตริงในการเขียนโปรแกรม C ขั้นตอนที่ 3 เวอร์ชัน 3.webp | center]] # รวมสตริง h> int หลัก () {}
- ตัดสินใจว่าคุณต้องการเปรียบเทียบสองสตริงใด ในตัวอย่างนี้เราเปรียบเทียบสองข้อมูล ถ่าน สตริง คุณต้องกำหนดค่าที่ส่งคืนเป็นจำนวนเต็มด้วย
[[รูปภาพ: เปรียบเทียบสองสตริงในการเขียนโปรแกรม C ขั้นตอนที่ 4 เวอร์ชัน 4.webp | center]] # รวม stdio.h> [[รูปภาพ: เปรียบเทียบสตริงสองสตริงในการเขียนโปรแกรม C ขั้นตอนที่ 5 เวอร์ชัน 4.webp | center]] # รวมสตริง h> int หลัก () {ถ่าน * str1 = "แอปเปิ้ล"; ถ่าน * str2 = "สีส้ม"; int ret;}
- เพิ่มฟังก์ชันเปรียบเทียบ ตอนนี้คุณได้กำหนดสองสตริงแล้วคุณสามารถเพิ่มฟังก์ชันเปรียบเทียบได้ พวกเราไป strncmp () ดังนั้นเราต้องตรวจสอบให้แน่ใจว่าได้กำหนดจำนวนอักขระที่จะวัดภายในฟังก์ชันแล้ว
[[รูปภาพ: เปรียบเทียบ 2 Strings ในการเขียนโปรแกรม C ขั้นตอนที่ 6 เวอร์ชัน 4.webp | center]] #include stdio.h> #include string.h> int main () {char * str1 = "apple"; ถ่าน * str2 = "สีส้ม"; int ret; ret = strncmp (str1, str2, 11); / * เปรียบเทียบทั้งสองสตริงที่มีความยาวไม่เกิน 11 อักขระ * /}
- ใช้.ถ้า ...เพื่อทำการเปรียบเทียบ ตอนนี้เราได้สร้างฟังก์ชันแล้วให้ใช้ ถ้า ... เพื่อกำหนดสตริงที่ยาวกว่า strncmp () ให้ 0 เป็นผลให้ถ้าสตริงมีความยาวเท่ากันจำนวนบวกถ้า str1 ยาวกว่าและจำนวนลบถ้า str2 ยาวกว่า
#include stdio.h> #include string.h> int main () {char * str1 = "apple"; ถ่าน * str2 = "สีส้ม"; int ret; ret = strncmp (str1, str2, 11); ถ้า (ret> 0) {printf ("str1 is longer"); } else if (ret 0) {printf ("str2 is longer"); } else {printf ("ทั้งสองสายเหมือนกัน"); } กลับ (0); }
คำเตือน
- โปรดจำไว้ว่าค่าที่ส่งคืนคือ 0 หากสตริงมีค่าเท่ากัน สิ่งนี้อาจสร้างความสับสนได้เนื่องจาก 0 เป็นค่าของ FALSE