用C+中的一个字符分隔符拆分字符串+; 我在这里看到了一些非常流行的问题,关于在C++中分割字符串的StAcExver,但是每次都需要通过空间分隔符来分割字符串。相反,我想将std::string按;定界符
这段代码取自StackOverflow上的n答案,但我不知道如何更新;,而不是空间用C+中的一个字符分隔符拆分字符串+; 我在这里看到了一些非常流行的问题,关于在C++中分割字符串的StAcExver,但是每次都需要通过空间分隔符来分割字符串。相反,我想将std::string按;定界符,c++,string,C++,String,这段代码取自StackOverflow上的n答案,但我不知道如何更新;,而不是空间 #包括 #包括 #包括 #包括 #包括 int main(){ 使用名称空间std; string-sense=“我感觉很好……”; istringstream iss(句子); 复制(istream_迭代器(iss), istream_迭代器(), ostream_迭代器(cout,“\n”); } 你能帮我吗?这里是一个使用任何分隔符的答案 我用这个来把绳子分开。第一种方法将结果放入预先构造的向量中,第二种
#包括
#包括
#包括
#包括
#包括
int main(){
使用名称空间std;
string-sense=“我感觉很好……”;
istringstream iss(句子);
复制(istream_迭代器(iss),
istream_迭代器(),
ostream_迭代器(cout,“\n”);
}
你能帮我吗?这里是一个使用任何分隔符的答案 我用这个来把绳子分开。第一种方法将结果放入预先构造的向量中,第二种方法返回一个新向量
std::vector<std::string> &split(const std::string &s, char delim, std::vector<std::string> &elems) {
std::stringstream ss(s);
std::string item;
while (std::getline(ss, item, delim)) {
elems.push_back(item);
}
return elems;
}
std::vector<std::string> split(const std::string &s, char delim) {
std::vector<std::string> elems;
split(s, delim, elems);
return elems;
}
std::vector&split(常量std::string&s、char-delim、std::vector&elems){
标准::stringstream ss(s);
std::字符串项;
while(std::getline(ss,item,delim)){
元素推回(项目);
}
返回元素;
}
std::vector split(const std::string&s,char delim){
std::向量元素;
拆分(s、delim、elems);
返回元素;
}
请注意,此解决方案不会跳过空令牌,因此下面将找到4项,其中一项为空:
std::vector<std::string> x = split("one:two::three", ':');
std::vector x=split(“一:二:三,”:);
在Read about中有答案。您可以创建自己的迭代器,该迭代器围绕std::getline(在>>std::ws,part,“;”)
。实际上,您获取代码的答案就在答案的正上方(按投票顺序排列),该答案使用任何分隔符将其拆分。您可以在此处找到不同的解决方案和解释:
std::vector<std::string> x = split("one:two::three", ':');