C ++ में strtok () फ़ंक्शन एक शून्य समाप्त बाइट स्ट्रिंग में अगला टोकन लौटाता है।
strtok () प्रोटोटाइप
char * strtok (char * str, const char * delim);
strtok()
Str और परिसीमक: समारोह दो तर्क लेता है। यह फ़ंक्शन द्वारा इंगित स्ट्रिंग में टोकन पाता है strtok
। सूचक विभाजक वर्णों को इंगित करता है।
एक ही तार से टोकन प्राप्त करने के लिए इस फ़ंक्शन को कई बार कहा जा सकता है। दो मामले हैं:
- यदि str NULL नहीं है:
strtok () के लिए कॉल को उस स्ट्रिंग के लिए पहला कॉल माना जाता है। फ़ंक्शन पहले वर्ण की खोज करता है जो कि परिसीमन में निहित नहीं है। यदि ऐसा कोई चरित्र नहीं मिला है, तो स्ट्रिंग में कोई टोकन नहीं है। तो एक शून्य सूचक वापस आ गया है। यदि ऐसा चरित्र पाया जाता है, तो फंक्शन पर वहाँ एक ऐसे चरित्र की खोज की जाती है, जो परिसीमन में मौजूद हो। यदि कोई विभाजक नहीं मिला है, तो str में केवल एक टोकन है। यदि एक विभाजक पाया जाता है, तो इसे ' 0' द्वारा बदल दिया जाता है और निम्न वर्ण के सूचक को बाद के इनवोकेशन के लिए स्थिर स्थान पर संग्रहीत किया जाता है। अंत में, फ़ंक्शन पॉइंटर को टोकन की शुरुआत में लौटाता है। - यदि str NULL है:
कॉल को स्ट्रेटोक के बाद की कॉल के रूप में माना जाता है और यह कार्य उसी जगह से जारी रहता है जहां से इसे पिछले आह्वान में छोड़ा गया था।
इसे हेडर फ़ाइल "> हेडर फ़ाइल में परिभाषित किया गया है।
strtok () पैरामीटर
str
: टोकन समाप्त करने के लिए अशक्त बाइट स्ट्रिंग को इंगित करता है।delim
: पॉलीटर को शून्य समाप्त बाइट स्ट्रिंग को इंगित करता है जिसमें विभाजक होते हैं।
strtok () वापसी मान
strtok()
समारोह अगले टोकन के सूचक रिटर्न अगर कोई है, या यह NULL भेजता है, तो कोई और अधिक टोकन पाए जाते हैं।
उदाहरण: कैसे strtok () फ़ंक्शन काम करता है
#include #include using namespace std; int main() ( char str() = "parrot,owl,sparrow,pigeon,crow"; char delim() = ","; cout << "The tokens are:" << endl; char *token = strtok(str,delim); while (token) ( cout << token << endl; token = strtok(NULL,delim); ) return 0; )
जब आप प्रोग्राम चलाते हैं, तो आउटपुट होगा:
टोकन हैं: तोता उल्लू गौरैया कबूतर