web-dev-qa-db-ja.com

一致する文字列のインデックスを返すC ++でstd :: string indexofを行う方法

Java同じ名前の関数のような、一致する文字列の整数を返すstd名前空間からの文字列indexof関数を探しています。次のようなもの:

std::string Word = "bob";
int matchIndex = getAString().indexOf( Word );

ここで、getAString()は次のように定義されています。

std::string getAString() { ... }
19
Alex B

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;
 }
29
Andrew Hare

例から「bob」を検索する文字列は明確ではありませんが、C++で 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;
}
6
Bill the Lizard

std::basic_string<>関数テンプレートを探しています:

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

これはインデックスを返すか、文字列が見つからない場合はstd::string::nposを返します。

4
dirkgently

あなたの例が何を意味するのか正確にはわかりませんが、stl文字列クラスについては、 findrfind を調べてください

1
Perchik