24

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 4

35

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;
 }
Sign up to request clarification or add additional context in comments.

2 Comments

Is there a function for actually finding the index at which the substring begins? I could subtract the beginning iterator, but is that necessary?
@ArnavBorborah find returns the index. The unsigned integer type string::size_type is just there to guarantee that the result of find fits into loc. (Think a really, really big index might not fit into an int.) stackoverflow.com/questions/1181079/…
6

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.

Comments

5

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

Comments

1

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

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.