কম্পিউটার টিউটোরিয়াল

সি ভাষায় স্ট্রিংয়ের জন্য পয়েন্টার অ্যারে (Array of Pointers to Strings)

স্ট্রিংয়ের পয়েন্টার অ্যারে কী?

একটি অ্যারে যার প্রতিটি এলিমেন্ট একটি স্ট্রিংয়ের বেস এড্রেস (প্রথম ক্যারেক্টারের ঠিকানা) ধারণ করে। এটি ২D ক্যারেক্টার অ্যারে থেকে আলাদা — এখানে প্রতিটি স্ট্রিংয়ের সাইজ আলাদা হতে পারে, মেমরি বাঁচায়।

ঘোষণা ও ইніশিয়ালাইজেশন

char *names[3] = {"one", "two", "three"};
// names[0] → "one" এর বেস এড্রেস
// names[1] → "two" এর বেস এড্রেস
// names[2] → "three" এর বেস এড্রেস

সু Brigada

  • ২D ক্যারেক্টার অ্যারেতে প্রতিটি রোয়ের ফিক্সড সাইজ থাকে (স্পেস বর্জ্য)।
  • পয়েন্টার অ্যারেতে প্রতিটি স্ট্রিং শুধু নিজের দরকারতörtén 스페স নেয়।
  • স্ট্রিং লিটারেলস রিড-অনলি মেমরিতে থাকে — সেগুলো মডিফাই করা উচিত নয়।

উদাহরণ ১: কম্পাইল-টাইম ইনিশিয়ালাইজেশন

#include <stdio.h>

int main() {
    char *arr[5] = {"one", "two", "three", "four", "five"};
    int i;

    printf("Strings:\n");
    for (i = 0; i < 5; i++)
        printf("%s\n", arr[i]);

    return 0;
}

আউটপুট

Strings:
one
two
three
four
five

উদাহরণ ২: ছাত্রদের নামের লিস্ট

#include <stdio.h>

int main() {
    char *students[] = {"bhanu", "ramu", "hari", "pinky"};
    int n = sizeof(students) / sizeof(students[0]);

    printf("Student names:\n");
    for (int i = 0; i < n; i++)
        printf("%s\n", students[i]);

    return 0;
}

আউটপুট

Student names:
bhanu
ramu
hari
pinky

রানটাইমে ইনপুট নেওয়া (malloc ব্যবহার করে)

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

int main() {
    char *names[3];
    char buffer[100];

    for (int i = 0; i < 3; i++) {
        printf("Enter name %d: ", i+1);
        fgets(buffer, sizeof(buffer), stdin);
        buffer[strcspn(buffer, "\n")] = '\0';

        names[i] = malloc(strlen(buffer) + 1);
        strcpy(names[i], buffer);
    }

    printf("\nNames entered:\n");
    for (int i = 0; i < 3; i++) {
        printf("%s\n", names[i]);
        free(names[i]); // মেমরি ফ্রি করুন
    }

    return 0;
}

সারসংক্ষেপ

  • char *arr[N] — স্ট্রিং পয়েন্টার অ্যারে।
  • স্ট্রিং লিটারেলস ব্যবহার করলে সেগুলো রিড-অনলি।
  • রানটাইমে ডাইনামিক স্ট্রিং için malloc + strcpy ব্যবহার করুন এবং free করতে ভুলবেন না।
  1. CSS ব্যবহার করে ওয়েবসাইটে ডার্ক/লাইট মোড তৈরি করার পদ্ধতি

  2. C ভাষায় পয়েন্টার ব্যবহার করে অ্যারে এলিমেন্টের যোগফল বের করার পদ্ধতি

  3. C ভাষায় লিনিয়ার সার্চ ব্যবহার করে অ্যারেতে ন্যূনতম এলিমেন্ট খুঁজে বের করার পদ্ধতি

  4. জাভাতে JSON অ্যারে কীভাবে লিখবেন/তैयার করবেন?