Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/124.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
用C+中的一个字符分隔符拆分字符串+; 我在这里看到了一些非常流行的问题,关于在C++中分割字符串的StAcExver,但是每次都需要通过空间分隔符来分割字符串。相反,我想将std::string按;定界符_C++_String - Fatal编程技术网

用C+中的一个字符分隔符拆分字符串+; 我在这里看到了一些非常流行的问题,关于在C++中分割字符串的StAcExver,但是每次都需要通过空间分隔符来分割字符串。相反,我想将std::string按;定界符

用C+中的一个字符分隔符拆分字符串+; 我在这里看到了一些非常流行的问题,关于在C++中分割字符串的StAcExver,但是每次都需要通过空间分隔符来分割字符串。相反,我想将std::string按;定界符,c++,string,C++,String,这段代码取自StackOverflow上的n答案,但我不知道如何更新;,而不是空间 #包括 #包括 #包括 #包括 #包括 int main(){ 使用名称空间std; string-sense=“我感觉很好……”; istringstream iss(句子); 复制(istream_迭代器(iss), istream_迭代器(), ostream_迭代器(cout,“\n”); } 你能帮我吗?这里是一个使用任何分隔符的答案 我用这个来把绳子分开。第一种方法将结果放入预先构造的向量中,第二种

这段代码取自StackOverflow上的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", ':');