में डबल विभाजन। उदाहरण के लिए मैं अपने txt फ़ाइल में इस लाइन है:सी
1|1,12;7,19;6,4;8,19;2,2
आप देख सकते हैं, यह 2 भागों, |
द्वारा अलग है। मुझे ;
विभाजक का उपयोग करके दोनों भागों को प्राप्त करने में कोई समस्या नहीं है, और दूसरे भाग 1,12;7,19;6,4;8,19;2,2
को अलग करना है। लेकिन मुझे प्रत्येक सेट की पहली और दूसरी संख्या प्राप्त करने के लिए ,
द्वारा आगे अलग करने में समस्याएं हैं।
यह मेरे वर्तमान कोड है:
result = strtok(result, ";");
while(result != NULL) {
printf("%s\n", result);
result = strtok(NULL, ";");
}
यह मेरे आउटपुट:
1,12
7,19
6,4
8,19
2,2
ठीक है, बढ़िया। लेकिन जब मैं 'strtok' (मैं बंटवारे के लिए इस पद्धति का उपयोग कर रहा हूँ) इस तरह का प्रयास करें:
result = strtok(result, ";");
while(result != NULL) {
//printf("%s\n", result);
help = strtok(result, ",");
while(help != NULL) {
printf("<%s>", help);
help = strtok(NULL, ",");
}
result = strtok(NULL, ";");
}
मैं केवल मिल "< 1>, < 12>" इस सेट में केवल एक सेट मौजूद है संख्याओं का मैं समझ नहीं पा रहा हूं कि बाकी संख्याएं कहां हैं। इसके बजाय, उत्पादन किया जाना चाहिए: < 1>, < 12>, < 7>, < 19>, < 6>, < 4>, < 8>, < 19>, < 2>, < 2>। क्या कोई समाधान दे सकता है, इस सेट के प्रत्येक सेट की प्रत्येक सेट को कैसे प्राप्त करें। शायद अन्य विधियां हैं या मैं कुछ गलत कर रहा हूं :)
धन्यवाद!
+1,:
आप रैत्रांत संस्करण
strtok_r()
उपलब्ध है, तो आप अपने कोड तो जैसे कि यह उपयोग करने के लिए बदल सकते हैं। – codaddict