std::basic_string::find
方法的签名之一是:
size_type find( const CharT* s, size_type pos, size_type count ) const;
参数如下:
职位 ; ; ; ;-开始搜索的职位
count-要搜索的子字符串的长度
s ;    ;    ;-指向要搜索的字符串的指针
此重载的方法行为描述如下:
查找等于范围[s,s+count]的第一个子字符串。此范围可能包含空字符。
我想知道在什么情况下有一个包含空字符的范围是有用的。 例如:
s.find("A", 0, 2);
这里,s
对应于长度为1的字符串。 因为count
为2,范围[s,s+count]包含一个空字符。这是什么意思?
有一个错误的前提,你没有拼写出来,但结合标题和问题它是:
空字符表示std::string
的结尾。
这是不对的。 std::string
s可以在任何位置包含空字符。 对于期望以空结尾的C字符串的函数,我们必须谨慎对待,但是find
非常好,它明确地提醒您它也适用于一般情况。