给定一个字符串和分界符,将分割后的字符串存放在数组中。
#include <iostream> #include <vector> #include <string> using namespace std; int main() { auto split = [](const string& s, char delim)-> vector<string>{ vector<string> ans; string cur; for(char ch : s){ if(ch == delim){ if(!cur.empty()){ ans.push_back(move(cur)); cur.clear(); } }else{ cur += ch; } } if(!cur.empty()){ ans.push_back(move(cur)); } return ans; }; // 测试用例1 //string str = "/a/./b/../..//c/"; //char delim = '/'; // 测试用例2 //string str = "/a/./b/../../c/"; //char delim = '/'; // 测试用例3 //string str = "I love you"; //char delim = ' '; // 测试用例4 string str = "I love you"; char delim = ' '; vector<string> res = split(str, delim);// 注意,连续出现相同的定界符视为一次分割 // 打印结果 cout << "res size = " << res.size() << endl; for(string &name : res){ cout << name << endl; } return 0; }