C++之字符串分割函数split

时间:2022-12-09 21:43:15

 c++之字符串分割:

 1 /*
 2   *c++之字符串分割:
 3   */
 4     
 5 #include <iostream>
 6 #include <string>
 7 #include <vector>
 8 
 9 void split(const std::string& s, const std::string& delim,std::vector< std::string >& ret)
10 {               
11     size_t last = 0;
12     size_t index=s.find_first_of(delim,last);
13     while (index!=std::string::npos) {
14         ret.push_back(s.substr(last,index-last));
15         last=index+1;
16         index=s.find_first_of(delim,last);
17     }   
18     if (index-last>0) {
19         ret.push_back(s.substr(last,index-last));
20     }   
21 }  
22 
23 //取vector的最后一个元素:
24 std::string tmp = str_arr[str_arr.size()-1];
25 
26 int main()
27 {
28     std::string str = "test/jjksdf";
29     if(str.find("/") != std::string::npos){
30         std::vector<std::string> svec;
31         split(str, "/", svec);
32         std::cout << "first:" << svec[0] << " second: "<< svec[1] << std::endl;
33     }
34     std::cout << "src string: " << str << std::endl;
35 
36     return 0;
37 }