আসুন দেখি, সি-তে স্ক্যানসেট কী। স্ক্যানসেট মূলত স্ক্যানফ ফ্যামিলি ফাংশন দ্বারা সমর্থিত একটি স্পেসিফায়ার। এটি %[] দ্বারা প্রতিনিধিত্ব করা হয়। স্ক্যানসেটের ভিতরে আমরা শুধুমাত্র একটি অক্ষর বা অক্ষরের একটি সেট নির্দিষ্ট করতে পারি (কেস সংবেদনশীল)। যখন স্ক্যানসেট প্রক্রিয়া করা হয়, তখন scanf() শুধুমাত্র সেই অক্ষরগুলিকে প্রক্রিয়া করতে পারে যা স্ক্যানসেটে উল্লেখ করা হয়েছে।
উদাহরণ
#include<stdio.h> int main() { char str[50]; printf("Enter something: "); scanf("%[A-Z]s", str); printf("Given String: %s", str); }
আউটপুট
Enter something: HElloWorld Given String: HE
এটি ছোট হাতের অক্ষরে লেখা অক্ষরগুলিকে উপেক্ষা করে। 'W' উপেক্ষা করা হয় কারণ এর আগে কিছু ছোট হাতের অক্ষর রয়েছে।
এখন, যদি স্ক্যানসেটের প্রথম অবস্থানে ‘^’ থাকে, তাহলে স্পেসিফায়ার সেই অক্ষরটির প্রথম উপস্থিতির পরে পড়া বন্ধ করে দেবে।
উদাহরণ
#include<stdio.h> int main() { char str[50]; printf("Enter something: "); scanf("%[^r]s", str); printf("Given String: %s", str); }
আউটপুট
Enter something: HelloWorld Given String: HelloWo
এখানে scanf() 'r' অক্ষর পাওয়ার পরে অক্ষরগুলিকে উপেক্ষা করে। এই বৈশিষ্ট্যটি ব্যবহার করে, আমরা সমস্যাটি সমাধান করতে পারি যে একটি স্ক্যানফ স্পেস সহ স্ট্রিং নেয় না। যদি আমরা %[^\n] রাখি, তাহলে এটি একটি নতুন লাইন অক্ষর না পাওয়া পর্যন্ত সমস্ত অক্ষর গ্রহণ করবে।
উদাহরণ
#include<stdio.h> int main() { char str[50]; printf("Enter something: "); scanf("%[^\n]s", str); printf("Given String: %s", str); }
আউটপুট
Enter something: Hello World. This line has some spaces. Given String: Hello World. This line has some spaces.