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

সি ভাষায় স্ক্যানসেট (Scansets) ব্যবহার

স্ক্যানসেট (scanset) সি-তে scanf ফ্যামিলি ফাংশন দ্বারা সমর্থিত একটি স্পেসিফায়ার। এটি %[] দিয়ে রিপ্রেজেন্ট করা হয়। স্ক্যানসেটের ভেতরে শুধু এক ক্যারেক্টার বা ক্যারেক্টার সেট (কেস-সেনসিটিভ) স্পেসিফাই করা যায়। স্ক্যানসেট প্রসেস হলে scanf() শুধু স্ক্যানসেটে উল্লেখিত ক্যারেক্টারগুলো প্রসেস করতে পারে।

উদাহরণ ১: বড় হাতের অক্ষর মাত্র গ্রহণ

#include <stdio.h>
int main() {
    char str[50];
    printf("কিছু লিখুন: ");
    scanf("%[A-Z]s", str);
    printf("দেওয়া স্ট্রিং: %s", str);
}

আউটপুট

কিছু লিখুন: HElloWorld
দেওয়া স্ট্রিং: HE

ছোট হাতের অক্ষর ইগনোর হয়েছে। 'W'-ও ইগনোর হয়েছে কারণ তার আগে ছোট হাতের অক্ষর ছিল।

যদি স্ক্যানসেটের প্রথম পজিশনে '^' থাকে, তবে স্পেসিফায়ার সেটি ক্যারেক্টার পাওয়ার পর পড়া বন্ধ করে দেয়।

উদাহরণ ২: নির্দিষ্ট ক্যারেক্টার পর্যন্ত পড়া

#include <stdio.h>
int main() {
    char str[50];
    printf("কিছু লিখুন: ");
    scanf("%[^r]s", str);
    printf("দেওয়া স্ট্রিং: %s", str);
}

আউটপুট

কিছু লিখুন: HelloWorld
দেওয়া স্ট্রিং: HelloWo

'r' পাওয়ার পর scanf() বাকি ক্যারেক্টার ইগনোর করে। এই ফিচার ব্যবহার করে scanf()-এর স্পেসসহ স্ট্রিং নেয়ার সমস্যা সমাধান করা যায়। %[^\n] দিলে নিউলাইন পাওয়া পর্যন্ত সব ক্যারেক্টার নিবে।

উদাহরণ ৩: স্পেসসহ পুরো লাইন ইনপুট

#include <stdio.h>
int main() {
    char str[50];
    printf("কিছু লিখুন: ");
    scanf("%[^\n]s", str);
    printf("দেওয়া স্ট্রিং: %s", str);
}

আউটপুট

কিছু লিখুন: Hello World. This line has some spaces.
দেওয়া স্ট্রিং: Hello World. This line has some spaces.
  1. সি ভাষায় স্ক্যানসেট (Scansets) ব্যবহার

  2. সি-এ printf() ও scanf()-এর রিটার্ন ভ্যালু

  3. সি-এ scanf() ও fscanf()

  4. পাইথনে scanf() মেথড কীভাবে সিমুলেট করবেন?