我有一个输入如下的字符串
using namespace std;
string s;
getline(cin, s);
我输入
a.b〜c.d
我想在.
和~
处分割字符串,但也想存储定界符。拆分后的元素将存储在向量中。
最终输出应如下所示
a
.
b
~
c
.
d
我看到了一个解决方案here,但它在Java中。
如何在c ++中实现这一目标?
答案 0 :(得分:1)
此解决方案是从answer逐字复制的,但注释行除外:
std::stringstream stringStream(inputString);
std::string line;
while(std::getline(stringStream, line))
{
std::size_t prev = 0, pos;
while ((pos = line.find_first_of(".~", prev)) != std::string::npos) // only look for . and ~
{
if (pos > prev)
wordVector.push_back(line.substr(prev, pos-prev));
wordVector.push_back(line.substr(pos, 1)); // add delimiter
prev = pos+1;
}
if (prev < line.length())
wordVector.push_back(line.substr(prev, std::string::npos));
}
我还没有测试代码,但是基本思想是您也想在结果中存储定界符。