मैं टेक्स्ट फ़ाइलों के रूप में सहेजे गए कुछ डेटा को पार्स करने के लिए एक प्रोग्राम लिख रहा हूं। मैं जो करने की कोशिश कर रहा हूं उसे एक घास के मैदान में हर सुई का स्थान मिल रहा है। मैं पहले से ही फाइल को पढ़ सकता हूं और घटनाओं की संख्या निर्धारित कर सकता हूं, लेकिन मैं इंडेक्स को भी ढूंढ रहा हूं।सभी सबस्ट्रिंग की घटनाओं और स्थानों को खोजें
उत्तर
string str,sub; // str is string to search, sub is the substring to search for
vector<size_t> positions; // holds all the positions that sub occurs within str
size_t pos = str.find(sub, 0);
while(pos != string::npos)
{
positions.push_back(pos);
pos = str.find(sub,pos+1);
}
संपादित मैं अपनी पोस्ट पढ़ने में भूलना, आप सबस्ट्रिंग कहा, और मैं तुम्हें मतलब आप एक स्ट्रिंग खोज कर रहे थे ग्रहण किया। यदि आप फ़ाइल को स्ट्रिंग में पढ़ते हैं तो यह अभी भी काम करेगा।
= के लिए वांछित आउटपुट = यदि फ़ाइल 100GB लंबी है तो क्या होगा? क्या यह अभी भी काम करता है? –
फ़ाइल बहुत लंबी नहीं है। यह सही काम करना चाहिए :) धन्यवाद! –
@Steve - यदि वह 100 जीबी फ़ाइल को एक स्ट्रिंग में पढ़ने में सक्षम है जैसे मैंने कहा, तो हाँ, यह काम करेगा। –
मैं जानता हूँ कि एक जवाब स्वीकार किया गया है, लेकिन यह भी काम करेंगे, और आप एक स्ट्रिंग के लिए फ़ाइल में लोड करने के लिए होने की बचत होगी ..
#include <iostream>
#include <fstream>
#include <vector>
#include <algorithm>
using namespace std;
int main(void)
{
const char foo[] = "foo";
const size_t s_len = sizeof(foo) - 1; // ignore \0
char block[s_len] = {0};
ifstream f_in(<some file>);
vector<size_t> f_pos;
while(f_in.good())
{
fill(block, block + s_len, 0); // pedantic I guess..
size_t cpos = f_in.tellg();
// Get block by block..
f_in.read(block, s_len);
if (equal(block, block + s_len, foo))
{
f_pos.push_back(cpos);
}
else
{
f_in.seekg(cpos + 1); // rewind
}
}
}
- 1. एक सबस्ट्रिंग की सभी घटनाओं को खोजने का सबसे तेज़ तरीका क्या है?
- 2. एल्गोरिथ्म सभी सबस्ट्रिंग
- 3. सभी implicits खोजें
- 4. एनएसएसटींग में सबस्ट्रिंग के सभी स्थानों को ढूंढें (केवल पहले नहीं)
- 5. पायथन में सभी रेगेक्स मैचों की अनुक्रमणिका खोजें?
- 6. सभी टिंकर घटनाओं की मास्टर सूची?
- 7. अजगर, सूची में स्ट्रिंग की सभी घटनाओं को दूर
- 8. अजगर re.sub सभी घटनाओं
- 9. स्ट्रिंगबिल्डर का उपयोग कर स्ट्रिंग की सभी घटनाओं को बदलें?
- 10. node.js में, मॉड्यूल की सभी घटनाओं को आगे कैसे
- 11. लेआउट की सभी क्लिक घटनाओं को कैसे अक्षम करें?
- 12. दो तारों के बीच सभी सबस्ट्रिंग्स खोजें
- 13. जीडब्ल्यूटी: स्थानों और गतिविधि मैपर्स की ग्रैन्युलरिटी
- 14. खोजने सबस्ट्रिंग
- 15. सभी स्पर्श घटनाओं को कैसे रोकें?
- 16. सभी टेक्स्ट नोड्स खोजें
- 17. अजगर नेस्ट शब्दकोशों में एक महत्वपूर्ण की सभी घटनाओं और सूचियों
- 18. खोजें मूल्य और/या सभी नोड्स
- 19. सर्वर पर सभी htaccess फ़ाइलों को खोजें
- 20. Resharper- सभी अप्रयुक्त वर्गों को खोजें
- 21. जिसका कुंजी मैचों सबस्ट्रिंग
- 22. फ़ोल्डर में सभी फ़ाइलों को खोजें
- 23. Google मैप्स आईओएस एसडीके - स्थानों के लिए खोजें
- 24. सभी स्रोत हार्डकोडेड तारों को खोजें
- 25. एसक्यूएल सबस्ट्रिंग और
- 26. एक बैश खोल स्क्रिप्ट चर में एक सबस्ट्रिंग कैसे खोजें
- 27. jQuery: ट्रैप सभी घटनाओं से पहले घटनाओं पर क्लिक करें?
- 28. ब्राउज़र कंसोल में सभी जावास्क्रिप्ट घटनाओं की निगरानी करें
- 29. खोजें सरणी और सभी कुंजियों और मानों लौट जब मैच
- 30. एनएसएसटींग की घटनाओं को बदलें - आईफोन
अधिक जानकारी के लिए कृपया। आप जो करने की कोशिश कर रहे हैं उसे समझने के लिए एक कोड नमूना बहुत उपयोगी होगा। –
यदि कोड नहीं है, तो छोटे नमूना इनपुट –