Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> การเขียนโปรแกรม C

โปรแกรม C สาธิตแนวคิดของสตริงโดยใช้ Pointers


อาร์เรย์ของอักขระเรียกว่าสตริง

ประกาศ

ไวยากรณ์สำหรับการประกาศอาร์เรย์มีดังนี้ −

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