Reputation: 24936
I'm looking for a string indexof function from the std namespace that returns an integer of a matching string similar to the java function of the same name. Something like:
std::string word = "bob";
int matchIndex = getAString().indexOf( word );
where getAString() is defined like this:
std::string getAString() { ... }
Upvotes: 24
Views: 135978
Reputation: 351506
Try the find
function.
Here is the example from the article I linked:
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;
}
Upvotes: 36
Reputation: 405745
It's not clear from your example what String you're searching for "bob" in, but here's how to search for a substring in C++ using 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;
}
Upvotes: 5
Reputation: 5620
I'm not exactly sure what your example means, but for the stl string class, look into find and rfind
Upvotes: 1
Reputation: 111130
You are looking for the std::basic_string<>
function template:
size_type find(const basic_string& s, size_type pos = 0) const;
This returns the index or std::string::npos
if the string is not found.
Upvotes: 6