我想知道如何在一个范围内拆分字符串:
std::string = "some<foo>some<bar>some...";
需要获得介于&lt; ...&gt;:
之间的范围foo
bar
答案 0 :(得分:2)
您可以反复使用string::find
:
size_t pos = 0;
while (true) {
size_t strt = mystring.find('<', pos);
pos = mystring.find('>', strt+1);
if (strt == string::npos || pos == string::npos) break;
cout << mystring.substr(strt+1, pos-strt-1) << endl;
}
答案 1 :(得分:0)
使用迭代器:
string str = "some<foo>some<bar>some";
string::iterator i = str.begin(), token = i;
while (i != str.end()) {
if(*i == '<') {
token = i+1;
}
else if (*i == '>') {
string item(token, i);
cout << item << endl;
}
i++;
}