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() { ... } 

4 Answers

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; } 
2

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; } 

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.

I'm not exactly sure what your example means, but for the stl string class, look into find and rfind

Your Answer

Sign up or log in

Sign up using Google Sign up using Facebook Sign up using Email and Password

Post as a guest

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy