strtok() फंक्शन
strtok() फंक्शन का सिंटैक्स निम्नानुसार है:
char* strtok(char* string, const char* limiter);
इनपुट स्ट्रिंग string और एक डिलीमीटर कैरेक्टर limiter। strtok() डिलीमीटेड कैरेक्टर के आधार पर स्ट्रिंग को टोकन में विभाजित करेगा।
हम strtok() से स्ट्रिंग्स की एक सूची की उम्मीद कर सकते हैं। लेकिन, फंक्शन एक सिंगल स्ट्रिंग वापस करता है क्योंकि strtok(input, limiter) को कॉल करने के बाद, यह पहला टोकन वापस करेगा।
लेकिन हमें फंक्शन को बार-बार NULL इनपुट स्ट्रिंग पर तब तक कॉल करते रहना होगा जब तक हमें NULL न मिल जाए! आमतौर पर, हम strtok(NULL, delim) को तब तक कॉल करते रहते हैं जब तक यह NULL वापस न कर दे।
उदाहरण
निम्नलिखित C प्रोग्राम strtok() फंक्शन के लिए है:
#include <stdio.h> #include <string.h> int main() { char input_string[] = "Hello Tutorials Point!"; char token_list[20][20]; char* token = strtok(input_string, " "); int num_tokens = 0; // टोकन लिस्ट का इंडेक्स। हम लिस्ट में जोड़ेंगे while (token != NULL) { strcpy(token_list[num_tokens], token); // टोकन लिस्ट में कॉपी करें num_tokens++; token = strtok(NULL, " "); // अगला टोकन प्राप्त करें। ध्यान दें कि अब इनपुट=NULL है! } // टोकन की लिस्ट प्रिंट करें printf("Token List:\n"); for (int i=0; i < num_tokens; i++) { printf("%s\n", token_list[i]); } return 0; }आउटपुट
जब उपरोक्त प्रोग्राम निष्पादित होता है, तो यह निम्नलिखित परिणाम उत्पन्न करता है:
Token List: Hello Tutorials Point!
इनपुट स्ट्रिंग "Hello Tutorials Point" है, और हम इसे स्पेस द्वारा टोकनाइज़ करने का प्रयास कर रहे हैं।
हम strtok(input, " ") का उपयोग करके पहला टोकन प्राप्त करते हैं। यहां डबल कोट्स डिलीमीटर हैं और एक सिंगल कैरेक्टर स्ट्रिंग है!
इसके बाद, हम strtok(NULL, " ") का उपयोग करके टोकन प्राप्त करते रहते हैं और तब तक लूप करते हैं जब तक हमें strtok() से NULL न मिल जाए।