主要使用getline
方法。在C++中本质上有两种getline
函数:
- 第一种:在头文件
<istream>
中,是iostream
类的成员函数。 - 第二种:在头文件
<string>
中,是普通函数。
这里使用第二种。getline
的四种重载形式如下:
istream& getline (istream& is, string& str, char delim); // 这里使用这一种
istream& getline (istream&& is, string& str, char delim);
istream& getline (istream& is, string& str);
istream& getline (istream&& is, string& str);
以/a/b/c
为例,希望以/
为界限进行分割,代码如下所示:
// #include <string>
vector<string> split(string & folder) {
// #include <sstream>
stringstream s(folder);
string curLayer;
vector<string> result;
while (getline(s, curLayer, '/')) {
result.push_back(curLayer);
}
return result;
}