Important Announcement
PubHTML5 Scheduled Server Maintenance on (GMT) Sunday, June 26th, 2:00 am - 8:00 am.
PubHTML5 site will be inoperative during the times indicated!

Home Explore บัตรเนื้อหาที่ 2 ค่าคงที่สตริง ตัวแปรสตริงและฟังก์ชัน

บัตรเนื้อหาที่ 2 ค่าคงที่สตริง ตัวแปรสตริงและฟังก์ชัน

Description: ชุดที่5

Search

Read the Text Version

ชุดท5่ี ตวั แปรชุด (Array) บตั รเนอ้ื หาที่ 2 ค่าคงทีส่ ตริง ตวั แปรสตริง และฟงั กช์ นั ค่าคงที่สตริง คือ ตัวอักขระ (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 ร้วู า่ หมดข้อมูลท่เี กบ็ ไวแ้ ล้ว การประกาศตัวแปรสตริง 1 มิติ เนื่องจากตัวแปรสตริง คือตัวแปรชุดที่มีชนิดเป็น char ดังนั้นจึงสามารถประกาศตัวแปรสตริงได้ ดังนี้ char stringname[size]; หรือ char stringname[size] = “string constant”; โดยที่ 1 stringname คอื ชอ่ื ตัวแปรสตริง ตง้ั ขนึ้ ตามหลกั การตั้งช่ือตวั แปร string constant คือ ค่าคงที่ชนิดสตริง โดยต้องเขียนอยู่ภายใต้เครื่องหมาย “ ” เสมอ size คอื ขนาดของตวั แปรสตริง ควรกาหนดใหเ้ นอ้ื ท่ีทงั้ หมดท่ใี ชเ้ ก็บขอ้ มูลมขี นาดเกนิ คา่ คงท่ีสตรงิ ที่ ยาวที่สุดไปอย่างน้อย 1 byte ในทางปฏิบัตินิยมกาหนดขนาดให้มาก ๆ ไว้ก่อนส่วนจะใช้เนื้อที่ครบทั้งหมด หรือไม่ ไม่มีผลอะไรในโปรแกรม ชุดกิจกรรมการเรียนร้กู ารเขยี นโปรแกรมภาษาคอมพวิ เตอร์ รายวชิ าภาษาซี ง30243 ชั้นมธั ยมศกึ ษาปที ี่ 5

ชุดท5่ี ตัวแปรชดุ (Array) ตัวอยา่ งการประกาศตวั แปรสตริง 1 มิติ 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 และกาหนดขอ้ ความให้สตรงิ */ การประกาศตัวแปรสตริง 2 มิติ char stringname[n][m] หรือ char stringname[n][m] = {“string constant1”, “string constant2 “,...,”string constanN }; โดยท่ี stringname คือ ชอ่ื ตัวแปรสตริง ตงั้ ขนึ้ ตามหลักการตง้ั ชอื่ ตวั แปร n, m คอื จานวนแถวและจานวนคอลัมนต์ ามลาดบั string constant1, string constant2,…., string constantN คือ คา่ คงที่ชนดิ สตรงิ ตวั ท่ี 1, 2, …., N ตามลาดับ ซง่ึ จะตอ้ งเขยี นอยู่ภายใตเ้ ครอื่ งหมาย “….” เสมอ ชดุ กิจกรรมการเรียนรูก้ ารเขยี นโปรแกรมภาษาคอมพิวเตอร์ 2 รายวชิ าภาษาซี ง30243 ช้ันมัธยมศกึ ษาปที ี่ 5

ชดุ ท5ี่ ตวั แปรชดุ (Array) ตัวอย่างการประกาศตวั แปรสตริง 2 มติ ิ 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] ตามลาดับ */ ฟังก์ชนั ทีใ่ ชง้ านเกี่ยวกับสตรงิ (string functions) ในภาษาซี มีฟังก์ชนั ท่ีใช้จัดการเกยี่ วกับคา่ คงทีส่ ตริง และตัวแปรสตริงอยหู่ ลายฟังก์ชนั ดงั นี้ 1. ฟงั ก์ชัน strlen( ) 2. ฟังก์ชัน strcmp( ) 3. ฟังกช์ นั strcpy( ) 4. ฟงั ก์ชัน strcat( ) โดยก่อนที่จะใช้ฟงั ก์ชนั เหล่านี้จะต้องมีการใชค้ าสั่ง # include<string.h> เข้ามาในโปรแกรมดว้ ย จงึ จะสามารถทางานได้ ฟงั ก์ชัน strlen( ) strlen( ) เป็นฟังก์ทใ่ี ชน้ บั ความยาวของคา่ คงที่สตริง หรือตัวแปรสตรงิ รูปแบบการใช้ strlen(string variable); หรอื strlen(“string constant”); ชดุ กิจกรรมการเรียนร้กู ารเขยี นโปรแกรมภาษาคอมพิวเตอร์ 3 รายวชิ าภาษาซี ง30243 ชน้ั มธั ยมศึกษาปที ่ี 5

ชดุ ท5ี่ ตวั แปรชดุ (Array) โดยท่ี string variable และ string constant คอื ตวั แปรสตรงิ และค่าคงทส่ี ตรงิ ตามลาดบั ใช้ อยา่ งใดอย่างหน่งึ เชน่ strlen(“computer”)เช่น strlen(“computer”) หรือ char name[20]= “KANNIKAR” ; strlen(name); เป็นต้น ลักษณะของฟงั ก์ชัน strlen( ) นีเ้ ปน็ ฟังก์ชันท่ีมกี ารส่งคา่ กลบั เปน็ ตัวเลขจานวน เตม็ (integer) มายงั ชือ่ ฟงั ก์ชัน ดงั นน้ั จงึ นยิ มกาหนดตัวแปร ชนิด int ข้นึ มา 1 ตวั เพ่อื เกบ็ ค่าความยาวของสตรงิ เอาไว้ เชน่ int n; char s[80]= “BANGKOK, THAILAND” ; n=strlen(s); /* กาหนดค่าความยาวของสตรงิ สง่ กลบั ใหต้ ัวแปร n */ เพื่อความเข้าใจเกี่ยวกับการทางานของฟังก์ชัน strlen( ) ได้ดีย่ิงขึ้นควร ศึกษาโปรแกรมตัวอย่าง ที่ 5.5 ดงั ต่อไปน้ี โปรแกรมตัวอยา่ งที่ 5.5 แสดงการใช้ตัวแปรชุด 2 มิติ สาหรบั เกบ็ ช่ือจังหวัด แลว้ นาขอ้ มลู มา โปรแกรมตวั อย่างท่ี 5.5 /* strlen.c */ #include<stdio.h> /* บรรทัดท่ี 1 */ #include<conio.h> /* บรรทัดท่ี 2 */ #include<string.h> /* บรรทดั ที่ 3 */ void main(void) /* บรรทดั ท่ี 4 */ { /* บรรทดั ท่ี 5 */ int n; /* บรรทดั ที่ 6 */ char s[81]; /* บรรทดั ท่ี 7 */ clrscr( ); /* บรรทัดท่ี 8 */ printf(\"Enter your string : \"); /* บรรทดั ท่ี 9 */ gets(s); /* บรรทดั ที่ 10 */ n = strlen(s); /* บรรทดั ท่ี 11 */ printf(\"\\nYour string is %s\\n\", s); /* บรรทัดที่ 12 */ printf(\"Length of string is %d\", n); /* บรรทดั ท่ี 13 */ getch(); /* บรรทัดที่ 14 */ } /* บรรทัดที่ 15 */ ชดุ กจิ กรรมการเรยี นร้กู ารเขยี นโปรแกรมภาษาคอมพิวเตอร์ 4 รายวชิ าภาษาซี ง30243 ชน้ั มัธยมศึกษาปที ี่ 5

ชดุ ท5่ี ตัวแปรชุด (Array) ผลลพั ธท์ ่ีไดจ้ ากโปรแกรม Enter your string : Ratchaburi Your string is Ratchaburi Length of string is 10 คาอธิบายโปรแกรม จากโปรแกรมตัวอย่างท่ี 5.5 สามารถอธิบายการทางานของโปรแกรมที่สาคัญ ๆ ไดด้ ังน้ี บรรทัดที่ 3 คาสัง่ #incluce <string.h> ในโปรแกรมตัวอย่างนใ้ี ห้การสนบั สนุนฟังกช์ นั strlen( ) สาหรบั หาความยาวของตวั แปรสตริง ในบรรทัดที่ 11 บรรทัดท่ี 10 คาสั่ง gets(s); เป็นการรับขอ้ มลู สตริงไปเก็บไว้ในตัวแปรสตริง s ซึง่ ตัวแปร สตริง s ได้ประกาศไว้ในบรรทดั ที่ 7 บรรทัดที่ 11 คาสั่ง n = strlen(s); เปน็ การกาหนดคา่ ความยาวของสตรงิ s ให้เก็บความยาวไว้ที่ ตวั แปร n บรรทดั ท่ี 12 ถึง 13 แสดงสตริงและความยาวของสตริงท่หี าได้ ออกแสดงท่จี อภาพ บรรทัดที่ 14 หยดุ รอรบั ค่าใด ๆ จากคีย์บอร์ด ซึ่งถ้าเรากด enter กจ็ ะกลับสู่โปรแกรม ฟงั กช์ นั strcmp( ) strcmp( ) เป็นฟังก์ชันที่ใช้เปรยี บเทียบข้อมลู ชนิดสตริง 2 ค่า ว่ามคี ่าเท่ากัน หรือมากกว่า หรือ นอ้ ยกวา่ อย่างใดอยา่ งหนึ่ง ซ่ึงการเปรยี บเทียบสตรงิ จะใชค้ า่ รหัส ASCII เปรยี บเทียบทีละตัวอกั ขระ ชดุ กจิ กรรมการเรียนรู้การเขยี นโปรแกรมภาษาคอมพวิ เตอร์ 5 รายวชิ าภาษาซี ง30243 ชนั้ มัธยมศกึ ษาปที ี่ 5

ชดุ ท5่ี ตวั แปรชดุ (Array) รปู แบบการใช้ strcmp(str1var, str2var); หรอื strcmp(str1constant, str2constant); โดยที่ str1var, str2var คือตัวแปรสตริงตัวที่ 1 และ 2 ตามลาดบั Str1constant, str2constant คอื คา่ คงที่สตรงิ ค่าท่ี 1 และ 2 ตามลาดบั ผลการเปรียบเทยี บระหว่าง str1constant, และ str2constant มีดงั นี้ ถ้า str1constant > star2constant จะได้คา่ มากกว่าศนู ย์ ถา้ str1constant < star2constant จะไดค้ า่ น้อยกว่าศูนย์ ถ้า str1constant = star2constant จะได้คา่ เทา่ กบั ศูนย์ โดยค่าท่ไี ด้จากการเปรยี บเทียบนีเ้ ป็นตวั เลขจานวนเตม็ จะถูกสง่ กลับมาเกบ็ ไวท้ ี่ชอ่ื ฟงั กช์ ัน strcmp( ) เพื่อความเข้าใจเกี่ยวกับการทางานของฟังก์ชัน strcmp( ) ได้ดียิ่งขึ้นควรศึกษาโปรแกรมตัวอย่าง ที่ 5.6 ดงั ตอ่ ไปน้ี ชุดกิจกรรมการเรยี นร้กู ารเขยี นโปรแกรมภาษาคอมพิวเตอร์ 6 รายวชิ าภาษาซี ง30243 ชัน้ มัธยมศึกษาปีที่ 5

ชดุ ท5่ี ตวั แปรชดุ (Array) โปรแกรมตวั อยา่ งท่ี 5.6 แสดงการใชฟ้ ังกช์ นั strcmp( ) เพือ่ เปรยี บเทียบขอ้ มลู ชนิด สตริง 2 ค่า ซึ่งมคี ่ามากกวา่ หรอื น้อยกวา่ อยา่ งใดอยา่ งหน่ึง /* strcmp.c */ /* บรรทัดที่ 1 */ #include<stdio.h> /* บรรทดั ท่ี 2 */ #include<conio.h> /* บรรทดั ที่ 3 */ #include<string.h> /* บรรทัดท่ี 4 */ void main(void) /* บรรทดั ที่ 5 */ { /* บรรทดั ท่ี 6 */ char str1[80], str2[80]; /* บรรทัดที่ 7 */ /* บรรทดั ที่ 8 */ clrscr(); /* บรรทัดที่ 9 */ printf(\"Enter string1: \"); /* บรรทัดท่ี 10 */ gets(str1); /* บรรทัดท่ี 11 */ printf(\"\\nEnter string2: \"); gets(str2); if( strcmp(str1, str2) > 0 ) /* บรรทดั ที่ 12 */ printf(\"\\n%s is greater than %s (ASCII code)\", str1, str2); /* บรรทดั ที่ 13 */ else if( strcmp(str1,str2) == 0 ) /* บรรทัดที่ 14 */ printf(\"\\n%s is equal to %s (ASCII code)\", str1, str2); /* บรรทัดท่ี 15 */ else /* บรรทัดที่ 16 */ printf(\"\\n%s is less than %s (ASCII code)\", str1, str2); /* บรรทดั ที่ 17 */ getch(); /* บรรทดั ท่ี 18 */ } /* บรรทัดท่ี 19 */ ชุดกจิ กรรมการเรียนรูก้ ารเขยี นโปรแกรมภาษาคอมพิวเตอร์ 7 รายวชิ าภาษาซี ง30243 ชน้ั มัธยมศกึ ษาปีที่ 5

ชุดท5ี่ ตัวแปรชดุ (Array) ผลลพั ธ์ทไี่ ด้จากโปรแกรม Enter string1: Computer Enter string2: Science Computer is less than Science (ASCII code) Enter string1: Science Enter string2: Computer Science is greater than Computer (ASCII code) Enter string1: yes Enter string2: yes yes is equal to yes (ASCII code) คาอธบิ ายโปรแกรม จากโปรแกรมตัวอยา่ งที่ 5.6 สามารถอธิบายการทางานของโปรแกรมท่สี าคญั ๆ ได้ดงั น้ี บรรทดั ท่ี 3 คาสั่ง #include <string.h> ในโปรแกรมตัวอย่างน้ี ใหก้ ารสนบั สนนุ ฟงั กช์ ัน strcmp( ) สาหรับเปรียบเทยี บข้อมูลชนิดสตริง 2 คา่ บรรทดั ท่ี 12 เป็นการตรวจสอบค่า str1> str2 หรือไม่ โดยใชฟ้ ังก์ชัน strcmp( ) ในบรรทดั ท่ี 12 และ 14 (หรอื คา่ ที่ได้จากฟงั ก์ชนั strcmp( ) > 0 หรือไม)่ ซึ่งถ้าใชก่ ็ให้พิมพ์ ข้อความบอก บรรทดั ท่ี 14 เป็นการตรวจสอบค่า str1 == str2 หรอื ไม่ โดยใชฟ้ ังกช์ ัน strcmp( ) (หรอื ค่าที่ได้จาก ฟังกช์ ัน strcmp( ) == 0 หรือไม่) ซ่ึงถา้ ใชก่ ใ็ ห้พมิ พข์ อ้ ความบอก บรรทัดที่ 15 และ 17 ถา้ ไมใ่ ช่ทง้ั 2 กรณที กี่ ล่าวมาแสดงว่าคา่ สตรงิ ทต่ี รวจสอบน้ัน สตริงตวั แรกมี คา่ นอ้ ยกว่าสตรงิ ตัวทส่ี อง ก็ให้พิมพ์ข้อความบอก บรรทดั ท่ี 15 หยดุ รอรับค่าใด ๆ จากคยี ์บอรด์ ซง่ึ ถ้าเรากด enter ก็จะกลบั สู่โปรแกรม ขอ้ สังเกต ฟงั ก์ชนั strcmp( ) จะเปรยี บเทียบสตรงิ ดว้ ยคา่ รหสั ASCII โดยเปรยี บเทยี บทลี ะตัว อักขระ ชุดกจิ กรรมการเรยี นรู้การเขยี นโปรแกรมภาษาคอมพิวเตอร์ 8 รายวชิ าภาษาซี ง30243 ชนั้ มัธยมศึกษาปที ี่ 5

ชุดท5่ี ตวั แปรชดุ (Array) ฟังกช์ ัน strcpy( ) strcpy( ) เปน็ ฟังกช์ ันทใ่ี ช้คดั ลอกข้อมูลจาก string คา่ หนงึ่ ไปยงั string อีกคา่ หนงึ่ รูปแบบการใช้ strcpy(str2, str1); โดยท่ี str1 คือ คา่ คงท่ีสตริง หรือคา่ ตวั แปรสตริงท่ตี ้องการคดั ลอก str2 คอื ตวั แปรสตริงทีใ่ ช้เก็บค่าทีค่ ัดลอกมาจาก str1 เชน่ char s1[80], s2[80]; strcpy(s1,”Computer”); strcpy(s2,s1); เพอื่ ความเขา้ ใจเก่ียวกบั การทางานของฟังกช์ นั strcpy( ) ได้ดียิง่ ขึ้น ควรศึกษาโปรแกรมตัวอยา่ ง ที่ 5.7 ดงั ต่อไปน้ี ชดุ กจิ กรรมการเรียนรูก้ ารเขยี นโปรแกรมภาษาคอมพวิ เตอร์ 9 รายวชิ าภาษาซี ง30243 ชัน้ มัธยมศึกษาปีท่ี 5

ชดุ ท5ี่ ตวั แปรชดุ (Array) โปรแกรมตวั อยา่ งที่ 5.7 แสดงการใช้ฟังกช์ นั strcpy( ) เพ่อื คดั ลอกข้อมูลจาก string คา่ หน่ึงไป ยงั string อกี ค่าหนึง่ /* strcpy.c */ #include<stdio.h> /* บรรทัดท่ี 1 */ #include<conio.h> /* บรรทัดที่ 2 */ #include<string.h> /* บรรทัดที่ 3 */ void main(void) /* บรรทัดท่ี 4 */ { /* บรรทัดท่ี 5 */ char str1[80], str2[80]; /* บรรทัดท่ี 6 */ clrscr(); /* บรรทัดที่ 7 */ strcpy(str1,\"Hello, Thailand\"); /* บรรทัดท่ี 8 */ strcpy(str2,str1); /* บรรทดั ที่ 9 */ printf(\"String1 = String2 = %s\",str2); /* บรรทดั ที่ 10 */ getch(); /* บรรทัดท่ี 11 */ } /* บรรทัดท่ี 12 */ ผลลพั ธท์ ไ่ี ดจ้ ากโปรแกรม String1 = String2 = Hello, Thailand คาอธบิ ายโปรแกรม 10 จากโปรแกรมตัวอยา่ งที่ 5.7 สามารถอธิบายการทางานของโปรแกรมทีส่ าคญั ๆ ไดด้ งั น้ี บรรทดั ท่ี 3 คาสงั่ #include <string.h> ในโปรแกรมตวั อย่างน้ี ใหก้ ารสนบั สนุน ฟังก์ชนั strcpy( ) สาหรบั คัดลอกข้อมลู จาก string คา่ หนงึ่ ไป string อกี คา่ หนึ่ง ในบรรทดั ที่ 8 และ 9 บรรทัดที่ 8 ฟังก์ชัน strcpy( ) คัดลอกขอ้ ความคาว่า Hello, Thailand ไปเกบ็ ไวใ้ นตัว แปร str1 บรรทัดที่ 9 ฟงั ก์ชัน strcpy( ) คดั ลอกขอ้ ความในตวั แปร str1 ไปเก็บไวใ้ นตวั แปร str2 บรรทัดท่ี 10 แสดงข้อความท่ีเก็บในตวั แปร str2 แสดงท่ีจอภาพ บรรทัดท่ี 11 หยุดรอรับคา่ ใด ๆ จากคยี บ์ อร์ด ซงึ่ ถ้ากด enter ก็จะกลับสโู่ ปรแกรม ชดุ กจิ กรรมการเรยี นรกู้ ารเขยี นโปรแกรมภาษาคอมพิวเตอร์ รายวชิ าภาษาซี ง30243 ชนั้ มัธยมศึกษาปีที่ 5

ชดุ ท5ี่ ตวั แปรชดุ (Array) ฟังก์ชนั strcat( ) strcat( ) เป็นฟังก์ชันที่ใช้เชื่อมค่าคงท่ีชนดิ สตรงิ 2 ค่า เข้าด้วยกัน โดยผลลัพธ์จะเก็บเอาไว้ในตัว แปรสตรงิ ตัวแรกเสมอ รูปแบบการใช้ strcat(str1,str2); โดยที่ str1 คอื ตัวแปรสตรงิ ตัวที่ 1 ใช้เกบ็ ผลลพั ธข์ องการเชื่อมสตรงิ ทง้ั 2 ตวั str2 คอื ตัวแปรสตริงตวั ที่ 2 หรอื คา่ คงทีส่ ตริงก็ได้ เพื่อความเข้าใจเกยี่ วกับการทางานของฟงั ก์ชัน strcat( ) ได้ดีย่ิงข้ึนควรศกึ ษาโปรแกรมตวั อย่าง ที่ 5.8 ดังต่อไปนี้ ชุดกิจกรรมการเรียนรกู้ ารเขยี นโปรแกรมภาษาคอมพวิ เตอร์ 11 รายวชิ าภาษาซี ง30243 ชั้นมัธยมศึกษาปีท่ี 5

ชุดท5ี่ ตวั แปรชดุ (Array) โปรแกรมตัวอยา่ งท่ี 5.8 แสดงการใชฟ้ ังกช์ ัน strcat( ) เพือ่ เช่อื มคา่ คงที่สตริง 2 คา่ เข้าดว้ ยกนั /* strcat.c */ #include<stdio.h> /* บรรทัดที่ 1 */ #include<conio.h> /* บรรทัดที่ 2 */ #include<string.h> /* บรรทดั ท่ี 3 */ void main(void) /* บรรทดั ที่ 4 */ { /* บรรทดั ที่ 5 */ char str1[80], str2[80]; /* บรรทัดที่ 6 */ clrscr(); /* บรรทดั ท่ี 7 */ strcpy(str1, \"Computer Programming Language 1\"); /* บรรทดั ท่ี 8 */ strcpy(str2, \" is your course... \"); /* บรรทดั ที่ 9 */ printf(\"%s\", strcat(str1, str2) ); /* บรรทัดท่ี 10 */ getch(); /* บรรทดั ท่ี 11 */ } /* บรรทัดท่ี 12 */ ผลลัพธ์ทไ่ี ดจ้ ากโปรแกรม Computer Programming Language 1 is your course... คาอธบิ ายโปรแกรม จากโปรแกรมตัวอยา่ งท่ี 5.8 สามารถอธบิ ายการทางานของโปรแกรมท่สี าคญั ๆ ไดด้ ังนี้ บรรทัดท่ี 3 คาส่งั #include <string.h> ในโปรแกรมตัวอยา่ งน้ี ให้การสนับสนนุ ฟังกช์ นั strcpy() และฟงั ก์ชนั strcat( ) สาหรบั เช่อื มคา่ สตรงิ 2 คา่ เข้าด้วยกัน ในบ รรทดั ท่ี 8, 9 และ 10 บรรทดั ท่ี 8 ฟงั ก์ชัน strcpy( ) คัดลอกข้อความคาว่า Computer Programming Language 1 ไปเก็บไวใ้ น ตัวแปร str1 บรรทดั ที่ 9 ฟงั ก์ชนั strcpy( ) คัดลอกข้อความคาวา่ is your course... ไปเก็บไวใ้ นตัวแปร str2 บรรทดั ท่ี 10 ใชฟ้ ังกช์ นั strcat( ) เพื่อเช่ือมตอ่ ค่าคงทชี่ นิดสตริง ในตัวแปร str1 และ str2 เข้า ดว้ ยกันแล้วแสดงผลออกจอภาพดว้ ยฟังกช์ นั printf( ) บรรทดั ที่ 11 หยุดรอรบั ค่าใด ๆ จากคยี บ์ อร์ด ซ่ึงถ้าเรากด enter กจ็ ะกลับสโู่ ปรแกรม ชุดกจิ กรรมการเรยี นรู้การเขยี นโปรแกรมภาษาคอมพวิ เตอร์ 12 รายวชิ าภาษาซี ง30243 ช้นั มัธยมศกึ ษาปที ่ี 5

ชุดท5่ี ตัวแปรชุด (Array) สรุปท้ายบท -- strlen( ) เปน็ ฟังก์ชนั ที่ใช้นบั ความยาวของค่าคงทสี่ ตรงิ หรอื ตัวแปรสตริง - strcmp( ) เปน็ ฟังก์ชนั ที่ใชเ้ ปรยี บเทยี บข้อมูลชนิดสตรงิ 2 ค่า วา่ มีคา่ เท่ากัน หรอื มากกวา่ หรือนอ้ ยกวา่ อย่างใดอย่างหนึง่ ซ่งึ การเปรยี บเทียบสตริงจะใชค้ ่ารหสั ASCII เปรียบเทียบทีละตัวอกั ขระ - strcpy( ) เปน็ ฟงั ก์ชนั ทีใ่ ชค้ ดั ลอกขอ้ มลู จาก string คา่ หนง่ึ ไปยัง string อกี คา่ หนึ่ง - strcat( ) เปน็ ฟงั กช์ ันทีใ่ ช้เช่อื มคา่ คงท่ชี นดิ สตริง 2 ค่า เข้าด้วยกัน โดยผลลพั ธจ์ ะเกบ็ เอาไว้ ในตัวแปรสตรงิ ตัวแรกเสมอ ชดุ กิจกรรมการเรยี นรกู้ ารเขยี นโปรแกรมภาษาคอมพิวเตอร์ 13 รายวชิ าภาษาซี ง30243 ช้ันมัธยมศกึ ษาปีที่ 5