स्ट्रिंग को टोकनाइज़ करना प्रोग्रामिंग में एक मौलिक ऑपरेशन है। हालाँकि, जब strtok() जैसे C फ़ंक्शंस के साथ काम करते हैं, जिसके लिए char* स्ट्रिंग की आवश्यकता होती है, तो std::string को सीधे टोकन देने से चुनौतियों का सामना किया जा सकता है।
std::string के साथ strtok() का उपयोग करने के लिए, एक विकल्प इसे .c_str() का उपयोग करके const char* में परिवर्तित करना है। हालाँकि, यह हमेशा वांछनीय नहीं हो सकता है, क्योंकि यह स्ट्रिंग का केवल पढ़ने योग्य प्रतिनिधित्व प्रदान करता है।
एक अधिक उपयुक्त समाधान strtok( के बजाय std::istringstream का लाभ उठाना है) ). std::istringstream एक std::string के स्ट्रीम-आधारित टोकननाइजेशन की अनुमति देता है। यहां एक उदाहरण है:
#include#include #include int main() { std::string myText("some-text-to-tokenize"); std::istringstream iss(myText); std::string token; while (std::getline(iss, token, '-')) { std::cout यह कोड std::string से एक std::istringstream बनाता है और इससे टोकन पढ़ता है जब तक कि यह इस मामले में निर्दिष्ट सीमांकक ('-') का सामना नहीं करता है।
अतिरिक्त विकल्प
अधिक उन्नत टोकननाइजेशन क्षमताओं के लिए, बूस्ट जैसे पुस्तकालय व्यापक समाधान प्रदान करते हैं जो स्ट्रोक() की तुलना में अधिक लचीलापन और सुविधाएं प्रदान करते हैं।
अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।
Copyright© 2022 湘ICP备2022001581号-3