সি প্রোগ্রামিং ভাষায় স্ট্রিং ইনপুট এবং আউটপুট নেওয়ার জন্য বিভিন্ন পদ্ধতি রয়েছে। সাধারণত, 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 এর মতই কাজ করে |
সংক্ষেপে
scanfওprintfফাংশন সাধারণত স্ট্রিং ইনপুট-আউটপুটে ব্যবহৃত হয়।getsওputsপূর্ণ বাক্য নিতে পারে, তবেgetsনিরাপদ নয়।fgetsওfputsআরও নির্ভরযোগ্য ও নিরাপদ স্ট্রিং ইনপুট এবং আউটপুটের জন্য ব্যবহৃত হয়।
Read more