ในบทความนี้ เราจะอธิบายถึงสตริงที่อยู่ในภาษาซี วิธีการประกาศสตริง และวิธีการนำไปใช้ในการเขียนโปรแกรมภาษาซี
สตริงในการเขียนโปรแกรม C คืออะไร?
สตริงคืออาร์เรย์หนึ่งมิติที่สิ้นสุดโดย ค่าว่าง \0 อักขระ. ใช้สำหรับจัดเก็บอักขระและข้อความ และอักขระแต่ละตัวในสตริงใช้หน่วยความจำหนึ่งไบต์ ไม่เหมือนกับภาษาโปรแกรมอื่น ๆ C ไม่มีชื่อประเภทข้อมูลเป็นสตริง แทนที่จะใช้ชื่อนี้ คุณจะเก็บข้อมูลไว้ใน ประเภทถ่าน
จะประกาศสตริงในการเขียนโปรแกรม C ได้อย่างไร
ในการเขียนโปรแกรม C คุณสามารถประกาศสตริงโดยใช้วิธีการต่อไปนี้:
คุณสามารถกำหนดสตริงด้วยขนาดที่กำหนดไว้ล่วงหน้าได้ ตัวอย่างเช่น สตริงที่มีขนาดจำกัด 8 อักขระควรประกาศเป็น:
ถ่าน ทดสอบ [ 8 ] = 'ยินดีต้อนรับ' ;
อีกวิธีหนึ่งในการกำหนดสตริงใน C โดยไม่ต้องกำหนดขนาดของอาร์เรย์:
ถ่าน ทดสอบ [ ] = 'ยินดีต้อนรับ' ;
คุณยังสามารถกำหนดสตริงโดยใช้อาร์เรย์อักขระที่มีขนาดที่กำหนด:
ถ่าน ทดสอบ [ 8 ] = { 'ใน' , 'มันคือ' , 'ล' , 'ค' , 'โอ' , 'ม' , 'มันคือ' , ' \0 ' } ;หรือคุณสามารถกำหนดสตริงให้กับอาร์เรย์อักขระโดยเริ่มต้นทีละอักขระโดยไม่กำหนดขนาด:
ถ่าน ทดสอบ [ ] = { 'ใน' , 'มันคือ' , 'ล' , 'ค' , 'โอ' , 'ม' , 'มันคือ' , ' \0 ' } ;
เดอะ อักขระว่าง “\0” แสดงถึงจุดสิ้นสุดของสตริง เพื่อกำหนดตำแหน่งสิ้นสุดของสตริง สิ่งสำคัญคือต้องเพิ่มอักขระ null ที่ส่วนท้ายของอักขระทุกตัว
การแสดงหน่วยความจำของสตริงด้านบนจะเป็นดังนี้:
ดัชนี | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 |
ตัวแปร | ใน | มันคือ | ล | ค | อ | ม | มันคือ | \0 |
ใน C อักขระ null ใช้เพื่อกำหนดตำแหน่งที่สตริงจะสิ้นสุด หากไม่มีอักขระ null ฟังก์ชันเหล่านี้จะยังคงประมวลผลหน่วยความจำต่อไปหลังจากสิ้นสุดสตริง ซึ่งอาจนำไปสู่ลักษณะการทำงานที่ไม่คาดคิดของโค้ด
ต่อไปนี้คือโค้ดโปรแกรมภาษาซีที่สมบูรณ์สำหรับการพิมพ์สตริง
#รวมนานาชาติ หลัก ( ) {
ถ่าน ทดสอบ [ 8 ] = { 'ใน' , 'มันคือ' , 'ล' , 'ค' , 'โอ' , 'ม' , 'มันคือ' , ' \0 ' } ;
พิมพ์ฉ ( 'ผลลัพธ์คือ: %s \n ' , ทดสอบ ) ;
กลับ 0 ;
}
โปรแกรมด้านบนประกาศการทดสอบอาร์เรย์อักขระที่มีขนาด 8 และกำหนดค่าเริ่มต้นด้วยอักขระ 'ยินดีต้อนรับ' , และ '\0' . จากนั้นจึงใช้ พิมพ์f() ฟังก์ชั่นการพิมพ์สตริงที่เก็บไว้ในการทดสอบ
เอาต์พุต
รับอินพุตของสตริงจากผู้ใช้ในการเขียนโปรแกรม C
คุณยังสามารถรับสตริงอินพุตจากผู้ใช้โดยใช้ สแกน() ฟังก์ชันและคุณต้องกำหนดขนาดอาร์เรย์สตริง ต่อไปนี้คือตัวอย่างโค้ดสำหรับการรับข้อมูลจากผู้ใช้:
#รวมนานาชาติ หลัก ( )
{
ถ่าน ชื่อ [ 10 ] ;
พิมพ์ฉ ( 'ใส่ชื่อ:' ) ;
สแกน ( '%s' , ชื่อ ) ;
พิมพ์ฉ ( 'ชื่อที่ป้อนคือ: %s' , ชื่อ ) ;
กลับ 0 ;
}
โปรแกรมด้านบนจะแจ้งให้ผู้ใช้ป้อนชื่อ อ่านจากผู้ใช้โดยใช้ฟังก์ชัน scanf() และจัดเก็บไว้ในชื่ออาร์เรย์อักขระ จากนั้นใช้ฟังก์ชัน printf() เพื่อพิมพ์ชื่อที่ป้อน
เอาต์พุต
อ่านสตริงหรือบรรทัดข้อความในการเขียนโปรแกรมภาษาซี
คุณสามารถใช้ fgets() ฟังก์ชันเพื่ออ่านสตริงที่ใช้ในการอ่านบรรทัดข้อความจากสตรีมอินพุตที่ระบุและเก็บไว้ในอาร์เรย์อักขระ โค้ดด้านล่างเป็นตัวอย่างของกรณีดังกล่าว:
#รวมนานาชาติ หลัก ( ) {
ถ่าน เส้น [ ห้าสิบ ] ;
พิมพ์ฉ ( 'ป้อนบรรทัดข้อความ: ' ) ;
เฟทส์ ( เส้น , ขนาดของ ( เส้น ) , สเตดิน ) ;
พิมพ์ฉ ( 'คุณป้อน: %s' , เส้น ) ;
กลับ 0 ;
}
โปรแกรม C ข้างต้นใช้ fgets() ฟังก์ชันอ่านบรรทัดข้อความที่ผู้ใช้ป้อนจากอินพุตมาตรฐานและเก็บไว้ในอาร์เรย์อักขระชื่อบรรทัด จากนั้นพิมพ์บรรทัดข้อความที่ป้อนโดยใช้ฟังก์ชัน printf()
เอาต์พุต
ฟังก์ชันสตริงที่ใช้กันทั่วไป
สตริงในการเขียนโปรแกรมภาษาซีสนับสนุนฟังก์ชันต่างๆ ที่สามารถใช้ในโปรแกรมเพื่อดำเนินการต่างๆ ได้ ฟังก์ชันบางอย่างที่สตริงใน C รองรับมีดังต่อไปนี้:
ชื่อฟังก์ชัน | วัตถุประสงค์ของฟังก์ชั่น |
strcat(a1,a2); | ผนวกเนื้อหาของสตริง a2 ต่อท้ายสตริง a1 หลังจากดำเนินการแล้ว สตริงผลลัพธ์จะถูกเก็บไว้ใน a1 |
strcpy(a1,a2); | ฟังก์ชันนี้คัดลอกเนื้อหาของสตริง a2 ไปยังสตริง a1 หลังจากการดำเนินการ a1 จะมีสำเนาที่ถูกต้องของ a2 รวมถึงอักขระ null ที่สิ้นสุด |
สเตรเลน(a1); | ส่งกลับความยาวของสตริง a1 เช่น จำนวนอักขระทั้งหมดที่อยู่ในสตริงก่อนสิ้นสุดสุดท้ายหรืออักขระ null |
strchr(a1,ch1); | ฟังก์ชันนี้ย้ายตัวชี้ไปยังอักขระ ch1 ที่เกิดขึ้นครั้งแรกในสตริง a1 ฟังก์ชันนี้ส่งคืนตัวชี้ null หากไม่พบ ch1 ในสตริง a1 |
บันทึก: C ให้ไลบรารีมาตรฐานที่เรียกว่า
บทสรุป
สตริงคือชุดของลำดับเชิงเส้นในโปรแกรม C อักขระแต่ละตัวเก็บหนึ่งไบต์และแสดงด้วยเครื่องหมายอัญประกาศคู่ C ให้ไลบรารีมาตรฐาน