อาร์เรย์ของอักขระเรียกว่าสตริง
ประกาศ
ไวยากรณ์สำหรับการประกาศอาร์เรย์มีดังนี้ −
char stringname [size];
ตัวอย่างเช่น − char string[50]; สตริงที่มีความยาว 50 ตัวอักษร
การเริ่มต้น
- การใช้ค่าคงที่อักขระตัวเดียว −
char string[10] = { ‘H’, ‘e’, ‘l’, ‘l’, ‘o’ ,‘\0’}
- การใช้ค่าคงที่สตริง −
char string[10] = "Hello":;
กำลังเข้าถึง − มีสตริงควบคุม "%s" ที่ใช้สำหรับเข้าถึงสตริงจนกว่าจะพบ '\0'
ตอนนี้ ให้เราทำความเข้าใจว่าอาร์เรย์ของพอยน์เตอร์ในภาษาการเขียนโปรแกรม C คืออะไร
อาร์เรย์ของพอยน์เตอร์:(เป็นสตริง)
- เป็นอาร์เรย์ที่มีองค์ประกอบเป็น ptrs ในการเพิ่มฐานของสตริง
- มีการประกาศและเริ่มต้นดังนี้ -
char *a[ ] = {"one", "two", "three"};
ที่นี่ a[0] คือตัวชี้ไปยังการเพิ่มฐานของสตริง "หนึ่ง"
a[1] เป็นตัวชี้ไปยังการเพิ่มฐานของสตริง "สอง"
a[2] เป็นตัวชี้ไปยังการเพิ่มฐานของสตริง "สาม"
ตัวอย่าง
ต่อไปนี้เป็นโปรแกรม C ที่แสดงแนวคิดของสตริง -
#include<stdio.h> #include<string.h> void main(){ //Declaring string and pointers// char *s="Meghana"; //Printing required O/p// printf("%s\n",s);//Meghana// printf("%c\n",s);//If you take %c, we should have * for string. Else you will see no output//// printf("%c\n",*s);//M because it's the character in the base address// printf("%c\n",*(s+4));//Fifth letter a because it's the character in the (base address+4)th position// printf("%c\n",*s+5);//R because it will consider character in the base address + 5 in alphabetical order// }
ผลลัพธ์
เมื่อโปรแกรมข้างต้นทำงาน มันจะให้ผลลัพธ์ดังต่อไปนี้ −
Meghana M a R
ตัวอย่างที่ 2
ลองพิจารณาอีกตัวอย่างหนึ่ง
รับด้านล่างเป็นโปรแกรม C ที่แสดงให้เห็นถึงแนวคิดของการพิมพ์ตัวอักษรโดยใช้ตัวดำเนินการโพสต์ที่เพิ่มขึ้นและก่อนเพิ่ม -
#include<stdio.h> #include<string.h> void main(){ //Declaring string and pointers// char *s="Meghana"; //Printing required O/p// printf("%s\n",s);//Meghana// printf("%c\n",++s+3);//s becomes 2nd position - 'e'. O/p is Garbage value// printf("%c\n",s+++3);//s becomes 3rd position - 'g'. O/p is Garbage value// printf("%c\n",*++s+3);//s=3 becomes incremented by 1 = 'h'.s becomes 4th position.h+3 - k is the O/p// printf("%c\n",*s+++3);//s=4 - h is the value. h=3 = k will be the O/p. S is incremented by 1 now. s=5th position// }
ผลลัพธ์
เมื่อโปรแกรมข้างต้นทำงาน มันจะให้ผลลัพธ์ดังต่อไปนี้ −
Meghana d d k k