如果char c不在字符串中,s.find(c)
应该返回什么。我的意思是在任何地方描述,因为C++文档通常不会说最重要的事情。什么是string :: find(char c)应该在C++中返回
编辑:更清楚地发现:find返回我们正在寻找的字符的索引,如果它(字符)不在那里呢?
如果char c不在字符串中,s.find(c)
应该返回什么。我的意思是在任何地方描述,因为C++文档通常不会说最重要的事情。什么是string :: find(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;
更多细节和例子可以在这里找到:
http://jcatki.no-ip.org/fncpp/cplusplus.com – 2012-08-26 20:22:44
@ jons34yp谢谢,我不知道这个问题。我编辑了我的答案,并将链接更改为指向cppreference.com。 –
find返回字符的,我们正在寻找的指标,如果它是什么,不是吗? – Yoda
@RobertKilar作为答案说 - 它返回一个值'std :: string :: npos' –