搜索空字符串时查找vs find_first_of

时间:2015-04-02 23:50:45

标签: c++ string stl

在STL中,当我执行s.find("")时,它返回0,而s.find_first_of("")返回-1(npos)。造成这种差异的原因是什么?

1 个答案:

答案 0 :(得分:17)

s.find(t)t中找到第一个出现的子串s。如果t为空,则该事件发生在s的开头,而s.find(t)将返回0.

s.find_first_of(t)t中找到第一个字符。如果t为空字符串,则t中没有字符,因此找不到任何字符,find_first_of将返回npos

Live on ideone