2009-03-16 10 views

Odpowiedz

25

Wypróbuj funkcję find.

Oto przykład z artykułu I powiązany:

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

Czy istnieje funkcja polegająca na wyszukiwaniu _indeksu_, w którym zaczyna się podciąg? Mógłbym odjąć początkowy iterator, ale czy to konieczne? –

4

Szukasz szablonu std::basic_string<> funkcji:

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

ta zwraca indeks lub std::string::npos jeśli ciąg nie zostanie znaleziony.

1

Nie jestem do końca pewien, co Twój przykład znaczy, ale dla klasy STL strun, zajrzeć do find i rfind

5

To nie wynika z twojej przykład co String szukasz „bob” w, ale oto jak wyszukać podciąg w C++ za pomocą 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; 
}