স্ট্রিং ইনপুট এবং আউটপুট

স্ট্রিং এবং স্ট্রিং ম্যানিপুলেশন - সি প্রোগ্রামিং উদাহরণ (C Examples) - Computer Science

386

সি প্রোগ্রামিং ভাষায় স্ট্রিং ইনপুট এবং আউটপুট নেওয়ার জন্য বিভিন্ন পদ্ধতি রয়েছে। সাধারণত, printf এবং scanf ফাংশন ব্যবহার করে স্ট্রিং ইনপুট এবং আউটপুট করা হয়, তবে কিছু বিশেষ ক্ষেত্রে gets, fgets এবং puts ফাংশনও ব্যবহৃত হয়।

১. scanf এবং printf ব্যবহার করে স্ট্রিং ইনপুট এবং আউটপুট

scanf এবং printf ফাংশন সাধারণত স্ট্রিং ইনপুট এবং আউটপুট নেওয়ার জন্য ব্যবহৃত হয়। তবে scanf স্পেস (whitespace) পর্যন্ত ইনপুট নিতে পারে, যার কারণে পূর্ণ বাক্য ইনপুট নিতে fgets বা gets ফাংশন ব্যবহার করা হয়।

উদাহরণ: scanf এবং printf

#include <stdio.h>

int main() {
    char name[20];

    printf("Enter your name: ");
    scanf("%s", name);  // স্পেস ছাড়া ইনপুট নেয়
    printf("Hello, %s!\n", name);

    return 0;
}

আউটপুট:

Enter your name: Alice
Hello, Alice!

বিঃদ্রঃ: scanf ফাংশন স্পেসের পরের অংশ ইনপুট হিসেবে গ্রহণ করে না। যেমন, "John Doe" ইনপুট দিলে শুধুমাত্র "John" অংশটি গ্রহণ করবে।

২. gets এবং puts ব্যবহার করে স্ট্রিং ইনপুট এবং আউটপুট

gets ফাংশন ব্যবহার করে স্পেসসহ পূর্ণ বাক্য ইনপুট নেওয়া যায়। আর puts ফাংশন ব্যবহার করে সহজে স্ট্রিং প্রিন্ট করা যায়।

উদাহরণ: gets এবং puts

#include <stdio.h>

int main() {
    char sentence[100];

    printf("Enter a sentence: ");
    gets(sentence);  // পূর্ণ বাক্য ইনপুট
    puts("You entered:");
    puts(sentence);  // আউটপুট প্রদর্শন

    return 0;
}

আউটপুট:

Enter a sentence: Hello, how are you?
You entered:
Hello, how are you?

বিঃদ্রঃ: gets ফাংশনটি নিরাপদ নয় এবং এটি ব্যবহার করার পরিবর্তে fgets ব্যবহার করা উত্তম।

৩. fgets এবং fputs ব্যবহার করে স্ট্রিং ইনপুট এবং আউটপুট

fgets ফাংশন নিরাপদ স্ট্রিং ইনপুট নেওয়ার জন্য ব্যবহার করা হয়। এটি নির্দিষ্ট আকারের ইনপুট গ্রহণ করে এবং ইনপুট স্ট্রিম থেকে স্পেসসহ সম্পূর্ণ লাইন নিতে পারে। fputs ফাংশন ব্যবহার করে স্ট্রিং প্রিন্ট করা যায়।

উদাহরণ: fgets এবং fputs

#include <stdio.h>

int main() {
    char sentence[100];

    printf("Enter a sentence: ");
    fgets(sentence, sizeof(sentence), stdin);  // পূর্ণ বাক্য ইনপুট
    fputs("You entered: ", stdout);
    fputs(sentence, stdout);  // আউটপুট প্রদর্শন

    return 0;
}

আউটপুট:

Enter a sentence: Hello, how are you?
You entered: Hello, how are you?

বিঃদ্রঃ: fgets ব্যবহার করলে স্ট্রিংয়ের শেষে \n (নতুন লাইন) অন্তর্ভুক্ত হয়, যা আউটপুটে প্রদর্শিত হতে পারে। এটি এড়াতে sentence[strcspn(sentence, "\n")] = '\0'; ব্যবহার করা যেতে পারে।

স্ট্রিং ইনপুট এবং আউটপুট পদ্ধতির তুলনা

ফাংশনব্যবহারবৈশিষ্ট্য
scanfস্পেসহীন ইনপুটস্পেস পর্যন্ত ইনপুট গ্রহণ করে, পূর্ণ বাক্য গ্রহণে ব্যর্থ
printfআউটপুটস্ট্রিংসহ যেকোনো ডেটা আউটপুটে প্রদর্শিত হয়
getsপূর্ণ বাক্য ইনপুটস্পেসসহ ইনপুট নিতে পারে, তবে নিরাপদ নয়
putsআউটপুটএকটি স্ট্রিং আউটপুটে প্রদর্শন করে, নতুন লাইনে যায়
fgetsনিরাপদ ইনপুটনির্দিষ্ট আকারের ইনপুট গ্রহণ করে, স্পেসসহ পূর্ণ বাক্য নেয়
fputsআউটপুটস্ট্রিং আউটপুট প্রদর্শন করে, puts এর মতই কাজ করে

সংক্ষেপে

  • scanfprintf ফাংশন সাধারণত স্ট্রিং ইনপুট-আউটপুটে ব্যবহৃত হয়।
  • getsputs পূর্ণ বাক্য নিতে পারে, তবে gets নিরাপদ নয়।
  • fgetsfputs আরও নির্ভরযোগ্য ও নিরাপদ স্ট্রিং ইনপুট এবং আউটপুটের জন্য ব্যবহৃত হয়।
Content added || updated By
Promotion

Are you sure to start over?

Loading...