【发布时间】:2020-08-22 20:08:34
【问题描述】:
std::string rule = "aa|b";
std::string curr;
std::vector<std::string> str;
int k = 0;
while (k < rule.size())
{
while (rule[k] != '|' )
{
curr.push_back(rule[k]);
k++;
}
str.push_back(curr);
curr.clear();
k++;
}
for (size_t i = 0; i < str.size(); i++)
{
std::cout << str[i] << "\n";
}
我只想将“aa”和“b”分开并将其作为字符串放在向量中。它向我抛出了这个异常:
Unhandled exception at 0x7A14E906... An invalid parameter was passed to a function that considers invalid parameters fatal;
【问题讨论】:
-
如果字符串的最后一个字符不是
|,你的内循环不会跑到字符串的末尾吗? -
是的,当我尝试使用“aa|b|”时它工作得很好,但如何解决呢?
-
有一种更简单的方法来创建子字符串:stackoverflow.com/questions/14265581/…
-
到达终点就停下来:
while (k < str.size() && rule[k] != '|')
标签: c++ string function vector