C – Strings สตริง ภาษา C

ที่จริงแล้ว สตริงคืออาร์เรย์ของอักขระหนึ่งมิติที่สิ้นสุดโดยอักขระ null ‘\0’ ดังนั้น null สายประกอบด้วยอักขระที่ประกอบด้วยสตริงตามด้วย null

การประกาศและการเริ่มต้นต่อไปนี้สร้างสตริงที่ประกอบด้วยคำว่า “Hello” หากต้องการเก็บอักขระ null ไว้ท้ายอาร์เรย์ ขนาดของอาร์เรย์อักขระที่มีสตริงจะมากกว่าจำนวนอักขระในคำว่า “Hello” หนึ่งตัว

char greeting[6] = {'H', 'e', 'l', 'l', 'o', '\0'};


หากคุณปฏิบัติตามกฎการเริ่มต้นอาร์เรย์ คุณสามารถเขียนคำสั่งข้างต้นได้ดังนี้ −

char greeting[] = "Hello";


ต่อไปนี้เป็นการนำเสนอหน่วยความจำของสตริงที่กำหนดไว้ข้างต้นใน C/C++ −


ที่จริงแล้ว คุณไม่ได้วางอักขระ null ไว้ที่ส่วนท้ายของค่าคงที่สตริง คอมไพเลอร์ C จะวาง ‘\0’ ที่ส่วนท้ายของสตริงโดยอัตโนมัติเมื่อเริ่มต้นอาร์เรย์ ให้เราลองพิมพ์สตริงที่กล่าวถึงข้างต้น −

#include <stdio.h>

int main () {

   char greeting[6] = {'H', 'e', 'l', 'l', 'o', '\0'};
   printf("Greeting message: %s\n", greeting );
   return 0;
}



เมื่อโค้ดด้านบนถูกคอมไพล์และรัน มันจะให้ผลลัพธ์ดังต่อไปนี้ −

Greeting message: Hello


C รองรับฟังก์ชันที่หลากหลายที่จัดการสตริงที่สิ้นสุดด้วยค่า null −

Sr.No.Function & Purpose
1strcpy(s1, s2);คัดลอกสตริง s2 ลงในสตริง s1
2strcat(s1, s2);เชื่อมสตริง s2 เข้ากับส่วนท้ายของสตริง s1
3strlen(s1);ส่งกลับความยาวของสตริง s1
4strcmp(s1, s2);ส่งกลับ 0 ถ้า s1 และ s2 เหมือนกัน น้อยกว่า 0 ถ้า s1<s2; มากกว่า 0 ถ้า s1>s2
5strchr(s1, ch);ส่งกลับตัวชี้ไปที่การเกิดขึ้นครั้งแรกของอักขระ ch ในสตริง s1
6strstr(s1, s2);ส่งกลับตัวชี้ไปที่การเกิดขึ้นครั้งแรกของสตริง s2 ในสตริง s1

ตัวอย่างต่อไปนี้ใช้ฟังก์ชันบางส่วนที่กล่าวถึงข้างต้น −

#include <stdio.h>
#include <string.h>

int main () {

   char str1[12] = "Hello";
   char str2[12] = "World";
   char str3[12];
   int  len ;

   /* copy str1 into str3 */
   strcpy(str3, str1);
   printf("strcpy( str3, str1) :  %s\n", str3 );

   /* concatenates str1 and str2 */
   strcat( str1, str2);
   printf("strcat( str1, str2):   %s\n", str1 );

   /* total lenghth of str1 after concatenation */
   len = strlen(str1);
   printf("strlen(str1) :  %d\n", len );

   return 0;
}


เมื่อโค้ดด้านบนถูกคอมไพล์และรัน มันจะให้ผลลัพธ์ดังต่อไปนี้ −

strcpy( str3, str1) :  Hello
strcat( str1, str2):   HelloWorld
strlen(str1) :  10

Leave a Reply

Your email address will not be published. Required fields are marked *