以下陈述是什么意思?
string s="Joe Alan Smith"";
cout << (s.find("Allen") == string::npos) << endl;
答案 0 :(得分:14)
实际上string::find()
会返回找到的字符串的位置,但是如果它找不到给定的字符串,则返回string::npos
,其中npos
表示无位置强>
npos
是无符号整数值,标准将其定义为-1
(带符号表示),表示无位置。
//npos is unsigned, that is why cast is needed to make it signed!
cout << (signed int) string::npos <<endl;
输出:
-1
请参阅Ideone:http://www.ideone.com/VRHUj
答案 1 :(得分:1)
http://www.cplusplus.com/reference/string/string/npos/
作为返回值,它通常用于表示失败。
换句话说,如果在给定的字符串s
中找不到字符串'Allen',则打印出来。
答案 2 :(得分:1)
.find()
方法如果在搜索到的字符串中找不到目标字符串,则返回string::npos
。它是一个整数,其值不能表示“找到”索引值,通常为-1。有效索引值是一个整数&gt; = 0,表示找到目标字符串的索引。