您的位置:首页 > 编程语言 > C语言/C++

c++中,用stringstream实现string的split

2016-07-07 21:36 405 查看
由于stl中的string类,没有split成员函数,所以需要自己实现它。

有两种方法,当你的delimiter是空白符的时候,可以用这个不推荐的取巧方法。

string sentence = "And I feel fine...";
istringstream iss(sentence);
copy(istream_iterator<string>(iss),
istream_iterator<string>(),
ostream_iterator<string>(cout, "\n"));


这个方法是利用了,存在stringstream里的string会自动以空白分割。

更加准确且稳定的split方法是这样的:

vector<string> &split(const string &s, char delim, vector<string> &elems) {
stringstream ss(s);
string item;
while (getline(ss, item, delim)) {
elems.push_back(item);
}
return elems;
}


关于
std::getline


template< class CharT, class Traits, class Allocator >
std::basic_istream<CharT,Traits>& getline( std::basic_istream<CharT,Traits>&& input,
std::basic_string<CharT,Traits,Allocator>& str,
CharT delim );

Parameters
input   -   the stream to get data from
str -   the string to put the data into
delim   -   the delimiter character
Return value
input
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  string stl