ในภาษาการเขียนโปรแกรม C การนับอักขระในสตริงเป็นงานทั่วไปที่โปรแกรมเมอร์อาจพบเจอ วิธีการนับอักขระในสตริงวิธีหนึ่งคือการใช้ฟังก์ชัน strcspn() . เดอะ strcspn() ฟังก์ชันเป็นฟังก์ชันสตริงในตัวในไลบรารี C “
คำแนะนำเชิงลึกเกี่ยวกับการใช้ strcspn() เพื่อนับอักขระในสตริงมีอยู่ในบทความนี้
ไวยากรณ์ของฟังก์ชัน strcspn()
ประการแรก มากำหนดไวยากรณ์ของ strcspn() การทำงาน. ฟังก์ชันใช้สองอาร์กิวเมนต์ซึ่งเป็นสตริงที่จะเปรียบเทียบ ไวยากรณ์เป็นดังนี้:
size_t strcspn ( ถ่าน * string1, const อักขระ * สตริง 2 ) ;
ในกรณีนี้ string1 แทนสตริงที่เราต้องการตรวจสอบอักขระ และ string2 แทนชุดของอักขระที่เราต้องการนับ
วิธีการนับตัวอักษรในสตริงด้วย strcspn() ในการเขียนโปรแกรมภาษาซี
หากเราต้องการนับจำนวนอักขระในสตริงก่อนช่องว่างแรก เราสามารถใช้ strcspn() ฟังก์ชั่นที่แสดงด้านล่าง:
#รวม
#รวม
int หลัก ( )
{
สตริงถ่าน [ ] = 'คำแนะนำลินุกซ์!' ;
เลนส์ int;
len = strcspn ( สตริง ' ' ) ;
พิมพ์ฉ ( 'จำนวนอักขระก่อนช่องว่างแรกคือ: %d' , เท่านั้น ) ;
กลับ 0 ;
}
ในโค้ดข้างต้น เราส่งผ่านสตริง “Linux Hint!” เป็นสตริงและชุดอักขระ ” ” (ช่องว่างเดียว) จำนวนอักขระที่ปรากฏก่อนที่ช่องว่างจะถูกส่งกลับโดย strcspn() การทำงาน.
เอาต์พุต
เรายังสามารถนับจำนวนอักขระในสตริงก่อนที่อักขระหลายตัวจากชุดที่ระบุจะปรากฏขึ้น ตัวอย่างเช่น หากเราต้องการนับจำนวนอักขระในสตริงก่อนที่จะมีเครื่องหมายอัศเจรีย์ปรากฏขึ้น เราสามารถใช้รหัสต่อไปนี้:
#รวม
int หลัก ( )
{
สตริงถ่าน [ ] = 'คำแนะนำลินุกซ์!' ;
เลนส์ int;
len = strcspn ( สตริง '!' ) ;
พิมพ์ฉ ( 'จำนวนอักขระที่อยู่หน้าเครื่องหมายอัศเจรีย์คือ: %d' , เท่านั้น ) ;
กลับ 0 ;
}
ในโค้ดข้างต้น เราส่งผ่านสตริง “Linux Hint!” เป็น string1 และอักขระกำหนด “!” (เครื่องหมายอัศเจรีย์). เดอะ strcspn() ฟังก์ชันคำนวณจำนวนอักขระก่อนเครื่องหมายอัศเจรีย์ตัวแรก
เอาต์พุต
บทสรุป
เดอะ strcspn() ฟังก์ชันเป็นฟังก์ชันที่เรียบง่ายแต่ทรงพลังที่ช่วยให้เราสามารถนับอักขระในสตริงตามชุดอักขระที่ระบุ เมื่อใช้ฟังก์ชันนี้ เราสามารถเขียนโค้ดที่มีประสิทธิภาพและรัดกุมเพื่อจัดการกับสตริงในภาษา C