อย่างที่เราทราบกันดีอยู่แล้วว่าในการเขียนโปรแกรม string สามารถกำหนดเป็นชุดของอักขระได้ สำหรับข้อกำหนดในการค้นหาจำนวนอักขระที่ใช้ในการสร้างสตริง C มีสองวิธีคือ strlen() และ sizeof()
ตามที่กล่าวไว้ในจุดข้างต้น ทั้งสองวิธีนี้ใช้เพื่อค้นหาความยาวของตัวถูกดำเนินการเป้าหมาย แต่บนพื้นฐานของการใช้งานภายใน ต่อไปนี้คือข้อแตกต่างพื้นฐานบางประการระหว่างทั้งสอง
ซีเนียร์ เลขที่ | คีย์ | strlen() | sizeof() |
---|---|---|---|
1 | คำจำกัดความ | strlen() เป็นฟังก์ชันที่กำหนดไว้ล่วงหน้าซึ่งกำหนดไว้ในไฟล์ส่วนหัวชื่อ string.h ในภาษา C | ในอีกทางหนึ่ง sizeof() เป็นโอเปอเรเตอร์ Unary และไม่ใช่ฟังก์ชันที่กำหนดไว้ล่วงหน้า |
2 | การนำไปใช้ | strlen ถูกใช้งานภายในเนื่องจากจะนับจำนวนอักขระในสตริงเป็นหลัก โดยไม่รวมค่า null นั่นคือส่งคืนความยาวของสตริงที่สิ้นสุดค่า null | ในขณะที่ sizeof ถูกใช้งานในลักษณะที่คำนวณขนาดที่แท้จริงของข้อมูลประเภทใดก็ได้ (จัดสรร) เป็นไบต์ (รวมถึงค่า Null) |
3 | การจัดการค่าว่าง | strln ไม่รวมค่า null และไม่รวมอยู่ในการคำนวณความยาวของสตริงทั้งหมด | ในทางกลับกัน sizeof ไม่สนใจค่าของตัวแปรและคำนวณขนาดที่แท้จริงของข้อมูลประเภทใดๆ (จัดสรร) เป็นไบต์ (รวมถึงค่า Null) |