通过指定start pos查找char或子字符串

cpx*_*cpx 3 c++

我找不到一个允许我指定开始pos开始char或子串搜索的函数.

我有,例如:

char *c = "S1S2*S3*S4";
Run Code Online (Sandbox Code Playgroud)

我想搜索' S3'通过搜索第一个' *'星号,然后是第二个星号跟随它,最后得到子S3星号' '被这些星号包围.

Mic*_*fik 9

类具有大find家族的称取的索引作为第二参数的函数.重复应用find('*', index)应该可以满足您的需求.

std::string s(c);
std::string::size_type star1 = s.find('*');
std::string::size_type star2 = s.find('*', star1 + 1);
std::string last_part = s.substr(star2 + 1);
Run Code Online (Sandbox Code Playgroud)

  • 检查`star1`和`star2`对`std :: string :: npos`是合适的.除此之外,我会推荐这个C++解决方案. (2认同)