ค่าคงที่สตริง คือ ตัวอักขระ (characters) ใด ๆ ที่เขียนอยู่ภายใต้เครื่องหมาย “ “ (double quotation) เช่น “Greeting!” , ”Hello, ” ”SA-WAS-DEE” , “4567” , “123.45” เป็นต้น
ตัวแปรสตริง คือ ตัวแปรชุดที่เก็บค่าคงที่ชนิดสตริง โดยมีชนิดของตัวแปรชุดเป็น char เช่น char name[30]=”KANNIKAR”; หรือ char strnum[10]=”12345”; เป็นต้น
สำหรับการเก็บค่าคงที่ชนิดสตริงไว้ในตัวแปรสตริงภายในหน่วยความจำนั้น จะเก็บเรียงกันไปทีละตัวอักขระ โดยใช้เนื้อที่ 1 byte ต่อการเก็บตัวอักษร 1 ตัว และใน byte สุดท้ายสตริงจะมีการเก็บ \0 (null character) ไว้เพื่อเป็นการบอกให้ compiler รู้ว่าหมดข้อมูลที่เก็บไว้แล้ว
5.2.1 การประกาศตัวแปรสตริง 1 มิติ
เนื่องจากตัวแปรสตริง คือตัวแปรชุดที่มีชนิดเป็น char ดังนั้นจึงสามารถประกาศตัวแปรสตริงได้ดังนี้
char stringname[size];
หรือ
char stringname[size] = “string constant”;
ตัวอย่างการประกาศตัวแปรสตริง 1 มิติ
stringname คือ ชื่อตัวแปรสตริง ตั้งขึ้นตามหลักการตั้งชื่อตัวแปร
string constant คือ ค่าคงที่ชนิดสตริง โดยต้องเขียนอยู่ภายใต้เครื่องหมาย “ “ เสมอ
size คือ ขนาดของตัวแปรสตริง ควรกำหนดให้เนื้อที่ทั้งหมดที่ใช้เก็บข้อมูลมีขนาดเกินค่าคงที่สตริงที่ยาว ที่สุดไปอย่างน้อย 1 byte ในทางปฏิบัตินิยมกำหนดขนาดให้มาก ๆ ไว้ก่อน ส่วนจะใช้เนื้อที่ครบทั้งหมดหรือไม่ ไม่มีผลอะไรในโปรแกรม
5.2.2 การประกาศตัวแปรสตริง 2 มิติ
1) char name[26]; /* ประกาศตัวแปรสตริง name มีขนาด 26 bytes */
2) char name[26], address[41];
/* ประกาศตัวแปรสตริง name มีขนาด 26 bytes และตัวแปรสตริง address มีขนาด 41 bytes ตามลำดับ */
3) char str[9] = “COMPUTER”;
/* ประกาศตัวแปรสตริง str มีขนาด 9 bytes และกำหนดข้อความให้สตริง */
แต่ถ้าเราเขียนคำสั่งเป็น char str[8] = “COMPUTER”; จะเกิด error ขึ้นเพราะความกว้างของตัว แปรสตริงน้อยกว่าคงที่สตริงอยู่ 1 byte ดังนั้นจะต้องกำหนดขนาดให้เกินค่าคงที่สตริงไว้อย่างน้อย 1 byte เสมอ
4) char city[80] = “Bangkok, Thailand”;
/* ประกาศตัวแปรสตริง city มีขนาด 80 bytes และกำหนดข้อความให้สตริง */
char stringname[n][m]
หรือ
char stringname[n][m] = {“string constant1”,
“string constant2 “,...,”string constanN };
stringname คือ ชื่อตัวแปรสตริง ตั้งขึ้นตามหลักการตั้งชื่อตัวแปรตัวอย่างการประกาศตัวแปรสตริง 2 มิติ
n, m คือ จำนวนแถวและจำนวนคอลัมน์ตามลำดับ
string constant1, string constant2,…., string constantN คือ ค่าคงที่ชนิดสตริงตัวที่ 1, 2, …., N ตามลำดับ ซึ่งจะต้องเขียนอยู่ภายใต้เครื่องหมาย “….” เสมอ
1) char name[3] [20];
/* ตัวแปรสตริง name 2 มิติ มีขนาด 3*20 = 60 bytes*/
2) char name[3] [20] = {“KANNIKAR”,”SURAPORN”,”THAITANA”};
/* ประกาศตัวแปรสตริง name 2 มิติ มีขนาด 3*20 = 60 bytes และกำหนดค่าสตริง KANNIKAR, SURAPORN และ THAITANA ให้กับตัวแปรสตริง name[0], name[1] และ name[2] ตามลำดับ */
ไม่มีความคิดเห็น:
แสดงความคิดเห็น