s.find(c)
char c が文字列にない場合に返されるはずのもの。つまり、どこにでも記述されているということです。なぜなら、C++ のドキュメントは通常、最も重要なことを述べていないからです。
編集:より明確に: find は、探している文字のインデックスを返します。それ(文字)が存在しない場合はどうなりますか?
std::string::npos
. しかしstd::find
、リターンs.end()
とイテレータはインデックスよりも優れているため、一般的には を使用する方が適切です。
文字が文字列に含まれていない場合は、特別なインデックス値std::string::npos
が返されます。
size_t index = s.find(c);
if (index == string::npos)
cout << "not found" << endl;
else
cout << "found at " << index << endl;
詳細と例はここにあります: