Sunday, January 9, 2011

ตัวแปรชุดของอักขระ String (ตัวแปรชนิดข้อความ)

ในภาษาซีจะไม่มีชนิดข้อมูลที่เป็นข้อความโดยตรง แต่จะเป็นการรวมเอาตัวแปลชนิดอักขระ หรือกลุ่มของข้อมูลที่มีชนิดข้อมูลอักขระมารวมกันเรียกว่า สายอักขระ หรือ ข้อความ
  • ถ้าเราต้องการใช้คำว่า Hello เราจะต้องประกาศตัวแปรที่มีชนิดเป็น char 5 ตัว
char ch1 = 'H', ch2 = 'e', ch3 = 'l', ch4 = 'l', ch5 = '0';

  • แต่ถ้าเป็นข้อความที่ยาวมากๆมันจะไม่ค่อยเหมาะสมเท่าไรที่จะต้องมาประกาศตัวแปรเยอะขนาดนี้ ดังนั้นการจัดเก็บข้อความในภาษาซีจึงเอาหลักหารของตัวแปรชุด (ตัวแปรแถวลำดับ)เข้ามาจัดการทำให้สามารถจัดเก็บข้อมูลชนิดข้อความได้อย่างเหมาะสมที่สุด
  • โดยตัวแปรชนิดข้อความในภาษาซีจะอยู่ในเครื่องหมาย "" Double quote
รูปแบบการประกาศตัวแปรชนิดข้อความ

char var[M];

  • var คือชื่อตัวแปร
  • M คือจำนวนของอักขระที่ใช้เ็ก็บบวกด้วย 1 (การบวกด้วย 1 เพื่อเป็นการใส่ \0 หรือ null character ให้รู้ว่าเป็นที่สิ้นสุดของข้อความนี้แล้ว)

ตัวอย่างการประกาศตัวแปร

char str[15]; //ประกาศตัวแปรข้อความ strมีความ 15 character
char frist[20], last[20]; //ประกาศตัวแปรข้อความ frist และ last มีความยาม 20 char.
รูปแบบการประกาศตัวแปรและกำหนดค่า
  • char var[M] = "??..??";
  • char var[M] = {'?','?','?'...,'?'}
  • char var[] = "??..??";
  • var คือ ชื่อตัวแปร
  • M คือ จำนวนของอักขระที่จะเก็บบวกด้วย 1
  • ? คือลักษณะของอักขระที่กำหนดค่าให้ข้อความมีจำนวนเท่ากับ M-1
ตัวอย่างการประกาศตัวแปร
char subject[12] = "Programming";
char nick[4] = "Com";
char nick_1[4] = {'C','o','m','\o'};
char name[] = "Jirasak";

รูปแบบการอ้างอิงอักขระในตัวแปรข้อความ

variable [N]
  • variable คือ ชื่อตัวแปร
  • N คือลำดับอักขระที่จะอ้างอิงในตัวแปรข้อความ (โดยตำแหน่งอักขระตัวแรกเริ่มจาก 0)
ตัวอย่างการอ้างอิงอักขระในตัวแปลข้อความ
char subject[12] = "Programming";

ตัวอย่างโปรแกรมในการอ้างอิงอักขระในข้อความ
#include <stdio.h>
void main()
{
char subject[12] = "Programming"; //ประกาศตัวแปร subject
printf("%s\n",subject); //แสดงผลข้อความ
printf("%c\n",subject[0]); //แสดงอักขระในข้อความตัวที่ 1 คือ P
printf("%c\n",subject[1]); //แสดงอักขระในข้อความตัวที่ 2 คือ r
printf("%c\n",subject[2]); //แสดงอักขระในข้อความตัวที่ 3 คือ o
printf("%c\n",subject[3]); //แสดงอักขระในข้อความตัวที่ 4 คือ g
printf("%c\n",subject[10]); //แสดงอักขระในข้อความตัวที่ 11 คือ g
}
ผลจากการรันโปรแกรม


หลักการตั้งชื่อตัวแปรในภาษาซี

  • ขึ้นต้นด้วยอีกษร A-z, a-z หรือเครื่องหมาย _ (underscore) เท่านั้น
  • ภายในชื่อตัวแปรห้ามมีช่องว่าง
  • ภายในตัวแปรประกอบไปด้วยอักขระ A-z, a-z หรือเครื่องหมาย _(underscore) เท่านั้น
  • การใช้อักษรพิมพ์ใหญ่และอักษรตัวพิมพ์เล็กมีความแตกต่างกัน
  • ห้ามใช้คำสวงนเป็นชื่อตัวแปร
  • ควรตั้งชื่อตัวแปรให้สัมพันธ์กับค่าที่เก็บ
  • ความยาวชื่อไม่จำกัด แต่ถือเพียง 31 ตัวแรกเป็นนัยสำคัญ
ตัวอย่างชื่อตัวแปรที่ถูกต้อง
acc 
_ok
S_date
addr
ChaiangMaiUniversity
ตัวอย่างชื่อตัวแปลที่ไม่ถูกต้อง
#account  
char
707james

รูปแบบการประกาศและกำหนดค่าตัวแปรในภาษาซี


type var1 = value1;
type var1 = value1, varN = valueN;

  • type คือชนิดของข้อมูลที่กำหนดให้กับตัวแปร
  • varX คือชื่อตัวแปรที่จะตั้ง
  • valueX คือค่าของตัวแปรที่ต้องการกำหนดให้
ตัวอย่าง
int number = 25;
int a = 1, b = 2, c = 3;
float real = 99.99;
float point1 = 45.2, point2 = 30;
char choice = 'a';
char ch1 = 'o', ch2 = 'z';

รูปแบบการประกาศตัวแปรในภาษาซี


type var1;
type var1, var2, var3, ... , varN;

  • type คือชนิดของข้อมูลที่กำหนดให้กับตัวแปร
  • varX คือชื่อตัวแปรที่จะตั้ง

ตัวอย่าง
int number;
int a, b, c;
float real;
float point1, point2;
char choice;
char ch1, ch2;

ชนิดข้อมูลในภาษาซี

ข้อมูลชนิดจำนวนเต็ม / Integer
int เป็นพารามิเตอร์หลักที่ใช้กับข้อมูลชนิดจำนวนเต็ม โดยมีการใช้งาน 5 รูปแบบดังนี้
  • unsigned int ข้อมูลชนิดจำนวนเต็มไม่คิดเครื่องหมาย 2 byte
  • short int ช้อมูลชนิดจำนวนเต็มขนาด 2 byte
  • int ข้อมูลชนิดจำนวนเต็มขนาด 2 byte
  • unsigned long ข้อมูลชนิดจำนวนเต็มไม่คิดเครื่องหมาย 4 byte
  • long ข้อมูลชนิดจำนวนเต็มขนาด 4 byte

ข้อมูลชนิดจำนวนทศนิยม/ float
float เป็นพารามิเตอร์หลักที่ใช้กับข้อมูลชนิดทศนิยมโดยมีการใช้งาน 3 รูปแบบ
  • float ข้อมูลชนิดจำนวนทศนิยมขนาด 4 byte
  • double ข้อมูลชนิดจำนวนทศนิยมขนาด 8 byte
  • long double ข้อมูลชนิดจำนวนทศนิยมขนาด 10 byte

ข้อมูลชนิดอักขระ / character
char เป็นพารามิเตอร์ที่ใช้งานเกี่ยวกับตัวอักษร และข้อความในภาษาซี โดยมีการกำหนดค่าอักขระโดยให้อยู่ในเครื่องหมาย single quote ('') เช่น 'C', 'o', 'm' อักขระพิเศษบางตัวไม่สามารถกำหนดค่าให้ได้โดยตรงแต่ใช้ค่ารหัส ASCII เช่นอักขระควบคุมและการแสดงผลขึ้นบรรทัดใหม่ '\n' เป็นต้นโดยมีรูปแบบการใช้งาน 2 รูปแบบ
  • unsigned char ข้อมูลชนิดอักขระไม่คิดเครื่องหมาย
  • char ข้อมูลชนิดอักขระปกติ

ตารางแสดงขอบเขตของชนิดข้อมูล


เปรียบเทียบขนาดของชนิดข้อมูล

char < short < int < long < float < double < long double