Как сделать std::string indexof в С++, который возвращает индекс строки соответствия?
Я ищу функцию индекса строки из пространства имен std, которое возвращает целое число соответствующей строки, аналогичную функции java с тем же именем. Что-то вроде:
std::string word = "bob";
int matchIndex = getAString().indexOf( word );
где getAString() определяется следующим образом:
std::string getAString() { ... }
Ответы
Ответ 1
Попробуйте функцию 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;
}
Ответ 2
Из вашего примера не видно, какую строку вы ищете для "bob", но здесь, как искать подстроку в С++, используя 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;
}
Ответ 3
Вы ищете шаблон функции std::basic_string<>
:
size_type find(const basic_string& s, size_type pos = 0) const;
Это возвращает индекс или std::string::npos
, если строка не найдена.
Ответ 4
Я не совсем уверен, что означает ваш пример, но для класса строки stl загляните в find и rfind