有没有一种好方法可以用多个定界符拆分字符串(在 C 或 C++ 中),同时将定界符保留为拆分字符串的一部分?我发现这样做的唯一方法是使用正则表达式,我宁愿不必为了这样做而引入另一个库? (我对字符串使用 STL,而不是使用 Boost)。
最佳答案
没有正则表达式,虽然我不确定它是更快还是更慢:
vector<string> split(string& stringToSplit)
{
vector<string> result;
size_t pos = 0, lastPos = 0;
while ((pos = stringToSplit.find_first_of(";,|", lastPos)) != string::npos)
{
result.push_back(stringToSplit.substr(lastPos, pos-lastPos+1));
lastPos = pos+1;
}
result.push_back(stringToSplit.substr(lastPos));
return result;
}
关于C++:用多个定界符拆分字符串并在结果中保留定界符?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17476224/