นภาษา C มีฟังก์ชันที่ใช้จัดการเกี่ยวกับค่าคงที่สตริง และตัวแปรสตริงอยู่หลายฟังก์ชันดังนี้
• ฟังก์ชัน strlen( )
• ฟังก์ชัน strcmp( )
• ฟังก์ชัน strcpy( )
• ฟังก์ชัน strcat( )
โดยก่อนที่จะใช้ฟังก์ชันเหล่านี้จะต้องมีการใช้คำสั่ง # include<string.h> เข้ามาในโปรแกรมด้วยจึงจะสามารถทำงานได้
5.3.1 ฟังก์ชัน strlen( )
strlen( ) เป็นฟังก์ที่ใช้นับความยาวของค่าคงที่สตริง หรือตัวแปรสตริง
strlen( ) เป็นฟังก์ที่ใช้นับความยาวของค่าคงที่สตริง หรือตัวแปรสตริง
รูปแบบการใช้
strlen(string variable);
หรือ
strlen(“string constant”);
โดยที่
string variable และ string constant คือ ตัวแปรสตริง และค่าคงที่สตริง ตามลำดับ ใช้อย่างใดอย่างหนึ่งเท่านั้น
เช่น strlen(“computer”); หรือ char name[20]= “KANNIKAR” ; strlen(name); เป็นต้น
ลักษณะของฟังก์ชัน strlen( ) นี้เป็นฟังก์ชันที่มีการส่งค่ากลับเป็นตัวเลขจำนวนเต็ม (integer) มายังชื่อฟังก์ชัน ดังนั้นจึงนิยมกำหนดตัวแปรชนิด int ขึ้นมา 1 ตัว เพื่อเก็บค่าความยาวของสตริงเอาไว้
string variable และ string constant คือ ตัวแปรสตริง และค่าคงที่สตริง ตามลำดับ ใช้อย่างใดอย่างหนึ่งเท่านั้น
เช่น 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
| ||||
ผลลัพธ์ที่ได้จากโปรแกรม
คำอธิบายโปรแกรม
จากโปรแกรมตัวอย่างที่ 5.5 สามารถอธิบายการทำงานของโปรแกรมที่สำคัญ ๆ ได้ดังนี้
จากโปรแกรมตัวอย่างที่ 5.5 สามารถอธิบายการทำงานของโปรแกรมที่สำคัญ ๆ ได้ดังนี้
บรรทัดที่ 3 คำสั่ง #incluce <string.h> ในโปรแกรมตัวอย่างนี้ ให้การสนับสนุนฟังก์ชัน strlen( ) สำหรับหาความยาวของตัวแปรสตริง ในบรรทัดที่ 11
บรรทัดที่ 10 คำสั่ง gets(s); เป็นการรับข้อมูลสตริงไปเก็บไว้ในตัวแปรสตริง s ซึ่งตัวแปรสตริง s ได้ประกาศไว้ในบรรทัดที่ 7
บรรทัดที่ 11 คำสั่ง n = strlen(s); เป็นการกำหนดค่าความยาวของสตริง s ให้เก็บความยาวไว้ที่ตัวแปร n
บรรทัดที่ 12 ถึง 13 แสดงสตริงและความยาวของสตริงที่หาได้ ออกแสดงที่จอภาพ
บรรทัดที่ 14 หยุดรอรับค่าใด ๆ จากคีย์บอร์ด ซึ่งถ้าเรากด enter ก็จะกลับสู่โปรแกรม
5.3.2 ฟังก์ชัน strcmp( )
strcmp( ) เป็นฟังก์ชันที่ใช้เปรียบเทียบข้อมูลชนิดสตริง 2 ค่า ว่ามีค่าเท่ากัน หรือมากกว่า หรือน้อยกว่าอย่างใดอย่างหนึ่ง ซึ่งการเปรียบเทียบสตริงจะใช้ค่ารหัส ASCII เปรียบเทียบทีละตัวอักขระ
strcmp( ) เป็นฟังก์ชันที่ใช้เปรียบเทียบข้อมูลชนิดสตริง 2 ค่า ว่ามีค่าเท่ากัน หรือมากกว่า หรือน้อยกว่าอย่างใดอย่างหนึ่ง ซึ่งการเปรียบเทียบสตริงจะใช้ค่ารหัส ASCII เปรียบเทียบทีละตัวอักขระ
รูปแบบการใช้
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 ดังต่อไปนี้
โปรแกรมตัวอย่างที่ 5.6 แสดงการใช้ฟังก์ชัน strcmp( ) เพื่อเปรียบเทียบข้อมูลชนิดสตริง 2 ค่า ซึ่งมีค่ามากกว่าหรือน้อยกว่าอย่างใดอย่างหนึ่ง
| ||||
ผลลัพธ์ที่ได้จากโปรแกรม
คำอธิบายโปรแกรม
จากโปรแกรมตัวอย่างที่ 5.6 สามารถอธิบายการทำงานของโปรแกรมที่สำคัญ ๆ ได้ดังนี้
จากโปรแกรมตัวอย่างที่ 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 โดยเปรียบเทียบทีละตัวอักขระ
5.3.3 ฟังก์ชัน strcpy( )
strcpy( ) เป็นฟังก์ชันที่ใช้คัดลอกข้อมูลจาก string ค่าหนึ่งไปยัง string อีกค่าหนึ่ง
strcpy( ) เป็นฟังก์ชันที่ใช้คัดลอกข้อมูลจาก string ค่าหนึ่งไปยัง string อีกค่าหนึ่ง
รูปแบบที่ใช้
strcpy(str2, str1);
โดยที่
str1 คือ ค่าคงที่สตริง หรือค่าตัวแปรสตริงที่ต้องการคัดลอก
str2 คือ ตัวแปรสตริงที่ใช้เก็บค่าที่คัดลอกมาจาก str1
เช่น char s1[80], s2[80];
strcpy(s1,”Computer”);
strcpy(s2,s1);
เพื่อความเข้าใจเกี่ยวกับการทำงานของฟังก์ชัน strcpy( ) ได้ดียิ่งขึ้น ควรศึกษาโปรแกรมตัวอย่างที่ 5.7 ดังต่อไปนี้
โปรแกรมตัวอย่างที่ 5.7 แสดงการใช้ฟังก์ชัน strcpy( ) เพื่อคัดลอกข้อมูลจาก string ค่าหนึ่งไปยัง string อีกค่าหนึ่ง
| ||||
ผลลัพธ์ที่ได้จากโปรแกรม
คำอธิบายโปรแกรม
จากโปรแกรมตัวอย่างที่ 5.7 สามารถอธิบายการทำงานของโปรแกรมที่สำคัญ ๆ ได้ดังนี้
จากโปรแกรมตัวอย่างที่ 5.7 สามารถอธิบายการทำงานของโปรแกรมที่สำคัญ ๆ ได้ดังนี้
บรรทัดที่ 3 คำสั่ง #include <string.h> ในโปรแกรมตัวอย่างนี้ ให้การสนับสนุนฟังก์ชัน strcpy( ) สำหรับคัดลอกข้อมูลจาก string ค่าหนึ่งไป string อีกค่าหนึ่ง ในบรรทัดที่ 8 และ 9
บรรทัดที่ 8 ฟังก์ชัน strcpy( ) คัดลอกข้อความคำว่า Hello, Thailand ไปเก็บไว้ในตัวแปร str1
บรรทัดที่ 9 ฟังก์ชัน strcpy( ) คัดลอกข้อความในตัวแปร str1 ไปเก็บไว้ในตัวแปร
str2
บรรทัดที่ 10 แสดงข้อความที่เก็บในตัวแปร str2 แสดงที่จอภาพ
บรรทัดที่ 11 หยุดรอรับค่าใด ๆ จากคีย์บอร์ด ซึ่งถ้ากด enter ก็จะกลับสู่โปรแกรม
5.3.4 ฟังก์ชัน strcat( )
strcat( ) เป็นฟังก์ชันที่ใช้เชื่อมค่าคงที่ชนิดสตริง 2 ค่า เข้าด้วยกัน โดยผลลัพธ์จะเก็บเอาไว้ในตัวแปรสตริงตัวแรกเสมอ
strcat( ) เป็นฟังก์ชันที่ใช้เชื่อมค่าคงที่ชนิดสตริง 2 ค่า เข้าด้วยกัน โดยผลลัพธ์จะเก็บเอาไว้ในตัวแปรสตริงตัวแรกเสมอ
รูปแบบการใช้
strcat(str1,str2);
str1 คือ ตัวแปรสตริงตัวที่ 1 ใช้เก็บผลลัพธ์ของการเชื่อมสตริงทั้ง 2 ตัว
str2 คือ ตัวแปรสตริงตัวที่ 2 หรือค่าคงที่สตริงก็ได้
เพื่อความเข้าใจเกี่ยวกับการทำงานของฟังก์ชัน strcat( ) ได้ดียิ่งขึ้นควรศึกษาโปรแกรมตัวอย่างที่ 5.8 ดังต่อไปนี้
โปรแกรมตัวอย่างที่ 5.8 แสดงการใช้ฟังก์ชัน strcat( ) เพื่อเชื่อมค่าคงที่สตริง 2 ค่าเข้าด้วยกัน
| ||||
ผลลัพธ์ที่ได้จากโปรแกรม
คำอธิบายโปรแกรม
จากโปรแกรมตัวอย่างที่ 5.8 สามารถอธิบายการทำงานของโปรแกรมที่สำคัญ ๆ ได้ดังนี้
จากโปรแกรมตัวอย่างที่ 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 ก็จะกลับสู่โปรแกรม
font ค่อนข้างอ่านยากครับตัวเล็กแถมอ่านยาก
ตอบลบขอบคุณค่ะอ่านสอบพอดี
ตอบลบ👍🏻
ตอบลบ