প্রথমে, C প্রোগ্রামিং ভাষায় পয়েন্টার অ্যারে কী সেটি বুঝি।
পয়েন্টার অ্যারে: (স্ট্রিং-এর জন্য)
এটি একটি অ্যারে যার এলিমেন্টগুলো স্ট্রিং-এর বেস অ্যাড্রেসের পয়েন্টার।
এটি নিম্নরূপ ডিক্লেয়ার এবং ইনিশিয়ালাইজ করা হয়:
char *a[] = {"one", "two", "three"};এখানে, a[0] স্ট্রিং "one"-এর বেস অ্যাড্রেসের পয়েন্টার।
a[1] স্ট্রিং "two"-এর বেস অ্যাড্রেসের পয়েন্টার।
a[2] স্ট্রিং "three"-এর বেস অ্যাড্রেসের পয়েন্টার।

সুবিধা
পয়েন্টার অ্যারের সুবিধাগুলো নিচে ব্যাখ্যা করা হল:
দুই মাত্রিক ক্যারেক্টার অ্যারের বিপরীতে, স্ট্রিং-এর অ্যারে এবং স্ট্রিং-এর পয়েন্টার অ্যারেতে স্টোরেজের জন্য কোনো ফিক্সড মেমরি সাইজ নেই।
স্ট্রিংগুলো শুধু প্রয়োজনীয় বাইট ধারণ করে অতএব, স্পেসের অপচয় নেই।
উদাহরণ
স্ট্রিংয়ের পয়েন্টার অ্যারে এবং তাদের অ্যাড্রেস প্রিন্ট করার কনসেপ্ট ডেমনস্ট্রেট করার C প্রোগ্রাম নিচে দেওয়া হল:
#include#include void main(){ // স্ট্রিং এবং পয়েন্টার, for লুপ ভেরিয়েবল ডিক্লেয়ার // int i; char *a[5] = {"One", "Two", "Three", "Four", "Five"}; // for লুপ ব্যবহার করে প্রতিটি স্ট্রিং লোকেশনের মান প্রিন্ট করা // printf("প্রতিটি স্ট্রিং লোকেশনের মানগুলো: \n"); for(i = 0; i < 5; i++){ printf("%s\n", a[i]); } // for লুপ ব্যবহার করে প্রতিটি স্ট্রিং লোকেশনের অ্যাড্রেস প্রিন্ট করা // printf("প্রতিটি স্ট্রিং ভ্যালুর অ্যাড্রেস লোকেশনগুলো: \n"); for(i = 0; i < 5; i++){ printf("%d\n", a[i]); } }
আউটপুট
উপরের প্রোগ্রামটি এক্সিকিউট করলে নিচের ফলাফল পাওয়া যাবে:
প্রতিটি স্ট্রিং লোকেশনের মানগুলো: One Two Three Four Five প্রতিটি স্ট্রিং ভ্যালুর অ্যাড্রেস লোকেশনগুলো: 4210688 4210692 4210696 4210702 4210707
উদাহরণ ২
আরেকটি উদাহরণ বিবেচনা করুন।
স্ট্রিংয়ের পয়েন্টার অ্যারে কনসেপ্ট ডেমনস্ট্রেট করার একটি C প্রোগ্রাম নিচে দেওয়া হল:
#include#include void main(){ // স্ট্রিং এবং পয়েন্টার ডিক্লেয়ার করা // char string[10] = "TutorialPoint"; char *pointer = string; // পয়েন্টার ব্যবহার করে স্ট্রিং প্রিন্ট করা // printf("স্ট্রিংটি হল: "); while(*pointer != '\0'){ printf("%s", *pointer); pointer++; } }
আউটপুট
উপরের প্রোগ্রামটি এক্সিকিউট করলে নিচের ফলাফল পাওয়া যাবে:
স্ট্রিংটি হল: TutorialPoint