วิธีเปรียบเทียบสองสตริงในภาษาการเขียนโปรแกรม C

ผู้เขียน: William Ramirez
วันที่สร้าง: 18 กันยายน 2021
วันที่อัปเดต: 1 กรกฎาคม 2024
Anonim
สอนภาษาซี C: การเปรียบเทียบค่าตัวแปรสตริงด้วยฟังก์ชัน strcmp() และ strcasecmp()
วิดีโอ: สอนภาษาซี C: การเปรียบเทียบค่าตัวแปรสตริงด้วยฟังก์ชัน strcmp() และ strcasecmp()

เนื้อหา

เป็นเรื่องปกติในโค้ด C ที่จะเปรียบเทียบความยาวสตริงเพื่อดูว่าสตริงใดมีอักขระมากกว่ากัน ซึ่งมีประโยชน์สำหรับการจัดเรียงข้อมูล จำเป็นต้องมีฟังก์ชันพิเศษเพื่อเปรียบเทียบสตริง - ห้ามใช้ != หรือ ==.

ขั้นตอน

  1. 1 ภาษาการเขียนโปรแกรม C ประกอบด้วยสองฟังก์ชันที่คุณสามารถใช้เพื่อเปรียบเทียบความยาวของสตริงได้ ฟังก์ชันทั้งสองนี้รวมอยู่ในห้องสมุด string.h>.
    • strcmp () - ฟังก์ชันนี้เปรียบเทียบสองสตริงและคืนค่าความแตกต่างในจำนวนอักขระ
    • strncmp () - ฟังก์ชั่นนี้เหมือนกับ strcmp () ยกเว้นแต่แรก NS ตัวอักษร ถือว่าปลอดภัยกว่าเพราะหลีกเลี่ยงความล้มเหลวที่ล้น
  2. 2 เริ่มโปรแกรมด้วยไลบรารีที่จำเป็น คุณจะต้องใช้ห้องสมุด stdio.h> และ string.h>เช่นเดียวกับไลบรารีอื่น ๆ ที่จำเป็นสำหรับโปรแกรมเฉพาะของคุณ

    #include stdio.h> #include string.h>

  3. 3 เข้าสู่ฟังก์ชัน int. ส่งกลับจำนวนเต็มจากการเปรียบเทียบความยาวของสองสตริง

    #include stdio.h> #include string.h> int main () {}

  4. 4 ระบุสองสตริงที่คุณต้องการเปรียบเทียบ ในตัวอย่างของเรา ลองเปรียบเทียบสองสตริงของ type char... กำหนดค่าที่ส่งกลับเป็นจำนวนเต็มด้วย

    #include stdio.h> #include string.h> int main () {char * str1 = "apple"; ถ่าน * str2 = "สีส้ม"; int ret; }

  5. 5 ป้อนฟังก์ชันเปรียบเทียบ ในตัวอย่างของเรา เราจะใช้ฟังก์ชัน strncmp ()... ในนั้นคุณต้องกำหนดจำนวนอักขระที่วัดได้

    #include stdio.h> #include string.h> int main () {char * str1 = "apple"; ถ่าน * str2 = "สีส้ม"; int ret; ret = strncmp (str1, str2, 8); / * เปรียบเทียบสองสตริงที่มีความยาวไม่เกิน 8 อักขระ * /}

  6. 6 ป้อนคำสั่งเงื่อนไข ถ้า... อื่น. จำเป็นต้องแสดงว่าเส้นไหนยาวกว่ากัน การทำงาน strncmp () จะส่งคืนหมายเลข 0ถ้าความยาวของสตริงเท่ากัน จะเป็นจำนวนบวกถ้า str1 ยาวกว่า และจำนวนลบถ้า str2 ยาวกว่า

    #include stdio.h> #include string.h> int main () {char * str1 = "apple"; ถ่าน * str2 = "สีส้ม"; int ret; ret = strncmp (str1, str2, 8); ถ้า (ret> 0) {printf ("str1 ยาวกว่า"); } อื่น ๆ ถ้า (ret 0) {printf ("str2 ยาวกว่า"); } else {printf ("ความยาวบรรทัดเท่ากัน"); } ส่งคืน (0); }

คำเตือน

  • โปรดจำไว้ว่าหากความยาวของสตริงเท่ากัน ค่า 0 จะถูกส่งคืน ซึ่งอาจทำให้สับสนได้เนื่องจาก 0 เป็น FALSE เช่นกัน