के साथ सी में दो बार स्ट्रिंग को टोकन करना I csv स्ट्रिंग को पार्स करने के लिए c में strtok()
का उपयोग कर रहा हूं। सबसे पहले मैं यह जानने के लिए टोकननाइज़ करता हूं कि कितने टोकन हैं इसलिए मैं सही आकार की एक स्ट्रिंग आवंटित कर सकता हूं। फिर मैं उसी वैरिएबल का उपयोग करके जाता हूं जिसे मैंने आखिरी बार टोकननाइजेशन के लिए इस्तेमाल किया था। हर बार जब मैं इसे दूसरी बार करता हूं हालांकि strtok(NULL, ",")
NULL
देता है भले ही अभी भी अधिक टोकन पार्स हैं। क्या कोई मुझे बता सकता है कि मैं क्या गलत कर रहा हूं?strtok()
char* tok;
int count = 0;
tok = strtok(buffer, ",");
while(tok != NULL) {
count++;
tok = strtok(NULL, ",");
}
//allocate array
tok = strtok(buffer, ",");
while(tok != NULL) {
//do other stuff
tok = strtok(NULL, ",");
}
तो उस दूसरी तरफ लूप यह हमेशा टोकन के बाद समाप्त होता है, भले ही अधिक टोकन हों। क्या कोई जानता है कि मैं क्या गलत कर रहा हूं?
यह स्पष्ट रूप से हर कोई जानता है कि इन दिनों 'strtok() 'क्या है, लेकिन किसी ने दस्तावेज़ को पढ़ा नहीं है? जब मैं सी सीख रहा था तब किसी ने मुझे इसके बारे में नहीं बताया, लेकिन जैसे ही मुझे इसके बारे में पता था, मैंने इसे पढ़ा। –