2009-03-16 13 views
15

मैं std नेमस्पेस से एक स्ट्रिंग इंडेक्स फ़ंक्शन ढूंढ रहा हूं जो एक ही नाम के जावा फ़ंक्शन के समान मिलान करने वाली स्ट्रिंग का पूर्णांक देता है। कुछ की तरह:सी ++ में std :: स्ट्रिंग इंडेक्स को कैसे करें जो मिलान स्ट्रिंग की अनुक्रमणिका देता है?

std::string word = "bob"; 
int matchIndex = getAString().indexOf(word); 

जहां getAString() इस तरह परिभाषित किया गया है:

std::string getAString() { ... } 

उत्तर

25

find समारोह की कोशिश करो।

string str1("Alpha Beta Gamma Delta"); 
string::size_type loc = str1.find("Omega", 0); 
if(loc != string::npos) { 
    cout << "Found Omega at " << loc << endl; 
} else { 
    cout << "Didn't find Omega" << endl; 
} 
+0

क्या वास्तव में _index_ खोजने के लिए कोई फ़ंक्शन है जिस पर सबस्ट्रिंग शुरू होता है? मैं शुरुआत इटेटरेटर घटा सकता हूं, लेकिन क्या यह आवश्यक है? –

4

आप std::basic_string<> समारोह टेम्पलेट के लिए देख रहे हैं:

size_type find(const basic_string& s, size_type pos = 0) const; 

यह सूचकांक या std::string::npos लौटाता है यदि स्ट्रिंग नहीं मिला है

यहाँ मैं जुड़ा हुआ लेख से उदाहरण है।

1

मैं बिल्कुल यकीन है कि क्या अपने उदाहरण का मतलब है नहीं कर रहा हूँ, लेकिन STL स्ट्रिंग वर्ग के लिए, find पर गौर और rfind

5

यह अपने उदाहरण से स्पष्ट नहीं है क्या स्ट्रिंग आप में "बॉब" के लिए खोज रहे हैं, लेकिन यहां find का उपयोग कर C++ में एक सबस्ट्रिंग की खोज कैसे करें।

string str1("Alpha Beta Gamma Delta"); 
string::size_type loc = str1.find("Omega", 0); 

if(loc != string::npos) 
{ 
    cout << "Found Omega at " << loc << endl; 
} 
else 
{ 
    cout << "Didn't find Omega" << endl; 
} 
संबंधित मुद्दे