आइए देखें, सी में स्कैनसेट क्या है। स्कैनसेट मूल रूप से स्कैनफ परिवार के कार्यों द्वारा समर्थित एक विनिर्देशक है। इसे %[] द्वारा दर्शाया जाता है। स्कैनसेट के अंदर हम केवल एक वर्ण या वर्णों का एक सेट (केस सेंसिटिव) निर्दिष्ट कर सकते हैं। जब स्कैनसेट को संसाधित किया जाता है, तो स्कैनफ़ () केवल उन्हीं वर्णों को संसाधित कर सकता है जो स्कैनसेट में उल्लिखित हैं।
उदाहरण
#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
यहाँ स्कैनफ () अक्षर '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.