String เป็นส่วนสำคัญของการเขียนโปรแกรม Strings คืออาร์เรย์ของชนิดตัวอักขระ ในการสอบแข่งขันอย่าง GATE ก็เป็นหัวข้อสำคัญเช่นกัน มาดูจุดสำคัญเกี่ยวกับ string แล้วเราจะไปสู่คำถามบางข้อที่จะช่วยให้คุณเข้าใจ concept ของ string ชัดเจนขึ้น
String ในภาษาโปรแกรมสามารถเก็บได้สองวิธีที่แตกต่างกัน คือ การใช้ character array (char str[size]) และการใช้ pointer ที่ชี้ไปที่ string (char * ch = "Hello") มีสิ่งสำคอบบางอย่างเกี่ยวกับการใช้ character array และ pointer to string พวกเขาคือ
- เพื่อหาขนาดของ string เราต้องส่ง instance ของ character array ของ string ไปยังเมธอด sizeof คือ sizeof(str)
- จุดสิ้นสุดของ string ถูกทำเครื่องหมายด้วย null character คือ '\0'
- มีเมธอดสำหรับหาความยาวของ string ชื่อว่า strlen()
- ในการแก้ไข string คือการเปลี่ยนตัวอักขระของ string ใช้ char array ในขณะที่การเข้าถึงตัวอักขระเดี่ยวของ string ไม่สามารถทำได้โดยใช้ pointer
มาดูคำถามฝึกหัดบ้าง
ทายผลลัพธ์ของ
ตัวอย่างที่ 1
char name[] = "TutorialsPoint"; char *ptr = name; cout<<++ptr;
ผลลัพธ์
utorialsPoint
ค่าของ pointer เพิ่มขึ้นหนึ่ง ดังนั้นจะเริ่มพิมพ์จากดัชนี 1
ตัวอย่างที่ 2
char name[] = "TutorialsPoint";
int length = strlen(name);
for(int i=length;i>1;i--)
printf("%c", name[i]);
ผลลัพธ์
tniopslairot
พิมพ์สตริงย้อนกลับโดยเริ่มจาก length ถึง 1
ตัวอย่างที่ 3
char c[] = "LearnProgrammingAtTutorialsPoint";
char *p =c;
printf("%s", p + c[1] - c[2]+1) ;
ผลลัพธ์
ProgrammingAtTutorialsPoint
ที่นี่เราสร้าง pointer ไปที่ string และเพิ่มค่าของ pointer โดยดัชนีบางอย่างซึ่งพิมพ์ส่วนที่เหลือของ string