เนื้อหา
เป็นเรื่องปกติในโค้ด C ที่จะเปรียบเทียบความยาวสตริงเพื่อดูว่าสตริงใดมีอักขระมากกว่ากัน ซึ่งมีประโยชน์สำหรับการจัดเรียงข้อมูล จำเป็นต้องมีฟังก์ชันพิเศษเพื่อเปรียบเทียบสตริง - ห้ามใช้ != หรือ ==.
ขั้นตอน
- 1 ภาษาการเขียนโปรแกรม C ประกอบด้วยสองฟังก์ชันที่คุณสามารถใช้เพื่อเปรียบเทียบความยาวของสตริงได้ ฟังก์ชันทั้งสองนี้รวมอยู่ในห้องสมุด string.h>.
- strcmp () - ฟังก์ชันนี้เปรียบเทียบสองสตริงและคืนค่าความแตกต่างในจำนวนอักขระ
- strncmp () - ฟังก์ชั่นนี้เหมือนกับ strcmp () ยกเว้นแต่แรก NS ตัวอักษร ถือว่าปลอดภัยกว่าเพราะหลีกเลี่ยงความล้มเหลวที่ล้น
- 2 เริ่มโปรแกรมด้วยไลบรารีที่จำเป็น คุณจะต้องใช้ห้องสมุด stdio.h> และ string.h>เช่นเดียวกับไลบรารีอื่น ๆ ที่จำเป็นสำหรับโปรแกรมเฉพาะของคุณ
#include stdio.h> #include string.h>
- 3 เข้าสู่ฟังก์ชัน int. ส่งกลับจำนวนเต็มจากการเปรียบเทียบความยาวของสองสตริง
#include stdio.h> #include string.h> int main () {}
- 4 ระบุสองสตริงที่คุณต้องการเปรียบเทียบ ในตัวอย่างของเรา ลองเปรียบเทียบสองสตริงของ type char... กำหนดค่าที่ส่งกลับเป็นจำนวนเต็มด้วย
#include stdio.h> #include string.h> int main () {char * str1 = "apple"; ถ่าน * str2 = "สีส้ม"; int ret; }
- 5 ป้อนฟังก์ชันเปรียบเทียบ ในตัวอย่างของเรา เราจะใช้ฟังก์ชัน strncmp ()... ในนั้นคุณต้องกำหนดจำนวนอักขระที่วัดได้
#include stdio.h> #include string.h> int main () {char * str1 = "apple"; ถ่าน * str2 = "สีส้ม"; int ret; ret = strncmp (str1, str2, 8); / * เปรียบเทียบสองสตริงที่มีความยาวไม่เกิน 8 อักขระ * /}
- 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 เช่นกัน