在python中,当字符不在字符串中时返回'-1':
a = "hello"
a.find("a")
结果 : -1
但在 C++ 中,它返回一个奇怪的数字!!!:
string a;
a = "hello";
a.find("a");
结果 : 4294967295
它是什么???所有字符串中的所有字符都相等吗???我怎么能说一个特殊的字符串不在文本中做一些工作?
我在 python 中知道,但在 C++ 中不知道...
在python中,当字符不在字符串中时返回'-1':
a = "hello"
a.find("a")
结果 : -1
但在 C++ 中,它返回一个奇怪的数字!!!:
string a;
a = "hello";
a.find("a");
结果 : 4294967295
它是什么???所有字符串中的所有字符都相等吗???我怎么能说一个特殊的字符串不在文本中做一些工作?
我在 python 中知道,但在 C++ 中不知道...
它返回std::string::npos
,当 characted 不成立时string
。std::string::npos
由标准定义,如
static const size_type npos = -1;
它是string::npos
。您应该使用以下内容来决定是否可以在给定字符串中找到特定字符串:
size_t foundIndex = a.find("a");
if ( foundIndex != string::npos)
{
cout << "found" <<endl;
}
如果没有找到特殊字符串,该find()
方法将返回。string::npos
因此,您应该始终使用以下语句来检查find()
结果:
string::size_type index = str.find("value");
if (string::npos != index)
{
// Do something.
}