1

s.find(c)char c が文字列にない場合に返されるはずのもの。つまり、どこにでも記述されているということです。なぜなら、C++ のドキュメントは通常、最も重要なことを述べていないからです。

編集:より明確に: find は、探している文字のインデックスを返します。それ(文字)が存在しない場合はどうなりますか?

4

2 に答える 2

9

std::string::npos. しかしstd::find、リターンs.end()とイテレータはインデックスよりも優れているため、一般的には を使用する方が適切です。

于 2012-08-26T09:37:08.097 に答える
6

文字が文字列に含まれていない場合は、特別なインデックス値std::string::nposが返されます。

size_t index = s.find(c);
if (index == string::npos)
   cout << "not found" << endl;
else
   cout << "found at " << index << endl;

詳細と例はここにあります:

于 2012-08-26T09:40:02.657 に答える