我想弄清楚两个不同角色之间的子串。字符串看起来像:
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
答案 0 :(得分:2)
检查substring()
后,您可以看到您需要的是:
line.substr(line.find(startDel) + 1, line.find(endDel) - (line.find(startDel) + 1));
因为该方法的第二个参数声明:
len
要包含在子字符串中的字符数(如果字符串是 更短,使用尽可能多的字符。)
答案 1 :(得分:0)
#include <iostream>
#include <string>
using namespace std;
string str = "channelBlock_0\d_off_mux=8, 8, 8, 8, 8, 8, 8, 8";
string ans;
int main()
{
int index = str.find_first_of("=");
index++;
while (str[index] != ',')
ans += str[index];
cout << ans;
return 0;
}