你的假设是错误的.find总是查找第一个匹配(或指定起始索引后的第一个匹配)
std::string str("Hello");
size_t x = str.find("l");
assert(x==2);
x = str.find("l");
assert(x==2);
Run Code Online (Sandbox Code Playgroud)
要查找下一场比赛,您必须指定一个开始位置:
x = str.find("l",x+1); //previous x was 2
assert(x==3);
x = str.find("l",x+1); //now x is 3, no subsequent 'l' found
assert(x==std::string::npos);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
317 次 |
| 最近记录: |