使用多个结束定界符剪切字符串

cut strings with multiple enddelimiter

我正在尝试找出两个不同字符之间的子字符串。字符串看起来像:

channelBlock_0\d_off_mux=8, 8, 8, 8, 8, 8, 8, 8
channelBlock_0\d_selvth=true, true, true, true, true, true, true, true

我想在 '=' 之后和第一个 ','

之前拆分

'=' 之后剪切已经对我有用了...这就是我得到的:

std::string line;             //contains the string from above
std::string startDel = "=";
std::string endDel   = ",";

cout << line.substr(line.find(startDel)+1,line.find(endDel));

我的输出如下所示:

8, 8, 8, 8, 8, 8, 8, 8
true, true, true, true, true

如何在第一个 ',' 之后剪切,所以我的输出只是

8
true

查看substring()后,可以看到您需要的是:

line.substr(line.find(startDel) + 1, line.find(endDel) - (line.find(startDel) + 1));

因为该方法的第二个参数指出:

len

Number of characters to include in the substring (if the string is shorter, as many characters as possible are used).