สตริงในภาษา C ก็คือ อาร์เรย์ของตัวอักษร ที่มีข้อมูลชนิดตัวอักษรเรียงกันไป แต่จะต้องมีจุดสิ้นสุดด้วย โดยจะใช้ตัวอักษรวางหรือ Null Character เป็นจุดสิ้นสุดของสตริง ซึ่งจะต่างจากอาร์เรย์ปกติที่ไม่ต้องมีจุดสิ้นสุดของการเก็บข้อมูลของสตริง
การเก็บข้อมูลของสตริงนั้น จะมีการเก็บข้อมูลอยู่ 2 ส่วน ส่วนแรกจะเป็นข้อมูลตัวอักษรโดยเก็บเรียงกันไป แบะส่วนที่ 2 จะเก็บจุดสิ้นสุดของสตริง ซึ่งจุสิ้นสุดของสตริงจะใช้ Null Characterหรือ ‘\0’ซึ่งในรูปที่ 2 แสดงการเก็บข้อมูลสตริงในหน่วยความจำ |
การประกาศตัวแปรสตริงและการกำหนดค่าเริ่มต้น
ความจริงภาษา C จะไม่มีชนิดข้อมูลสตริง แต่มันจะใช้อาร์เรย์ของตัวอักษรแทน ในการประกาศตัวแปรสตริงนั้น จะคำนึงความยาวของข้อมูล และสิ่งที่ลืมไม่ได้ คือ จะต้องมีพื้นที่อีก 1 ในการใช้เก็บจุดสิ้นสุดของสตริงด้วย เพราะภาษา C จะมีข้อบังคับอยู่ว่า ไบต์สุดท้ายจะเป็นส่วนที่เก็บจุดสิ้นสุดของสตริงเสมอ เช่น ผู้ใช้มีข้อมูลขนาด 10 ไบต์หรือ 10 ตัวอักษร ผู้ใช้จะต้องกำหนดขนาดของตัวแปรสตริงตัวนั้นเป็น 11 ไบต์ char str[11] แต่ผู้ใช้ก็สามารถประกาศตัวแปรสตริงได้โดยไม่ต้องบอกขนาดของความยาว แต่ผู้ใช้จะต้องกำหนดค่าเริ่มต้นให้กับตัวแปรสตริงตัวนั้นเลย ดังตัวอย่างด้านล่าง และการเก็บข้อมูลในหน่วยความจำแสดงในรูปที่ 4 Char month[ ] = “January” ในการกำหนดค่าเริ่มต้นนั้น ไม่จำเป็นต้องกำหนดข้อมูลให้เต็มพอดีกับขนาดที่กำหนดไว้ก็ได้ ส่วนพื้นที่ที่เหลือก็จะเป็นค่าที่ไม่สามารถทราบได้ ดังตัวอย่างด้านล่าง และการเก็บข้อมูลในหน่วยความจำแสดงในรูปที่ 4 Char str[11] = “Good Day” สตริงกับพอยเตอร์
ถ้าผู้ใช้ต้องการที่จะประกาศตัวแปรพอยเตอร์ของสตริง ก็สามารถทำได้เหมือนกับการประกาศพอยเตอร์ตามปกติ แต่จะสามารุใช้ได้กับชนิดข้อมูลที่เป็นตัวอักษรหรือ Char เท่านั้นในการประกาศพอยเตอร์และกำหนดค่าเริ่มต้น สามรถทำได้ดังตัวอย่างด้านล่างนี้ Char *pStr = “Good Day!”; |