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

c++ 字符分割实现

2013-10-30 13:15 507 查看
原文链接:http://www.cnblogs.com/MikeZhang/archive/2012/03/24/MySplitFunCPP.html

还不错,学习下。
1 /*
2         File      : split1.cpp
3         Author    : Mike
4         E-Mail    : Mike_Zhang@live.com
5  */
6 #include <iostream>
7 #include <string>
8 #include <vector>
9
10 //字符串分割函数
11 std::vector<std::string> split(std::string str,std::string pattern)
12 {
13     std::string::size_type pos;
14     std::vector<std::string> result;
15     str+=pattern;//扩展字符串以方便操作
16     int size=str.size();
17
18     for(int i=0; i<size; i++)
19     {
20         pos=str.find(pattern,i);
21         if(pos<size)
22         {
23             std::string s=str.substr(i,pos-i);
24             result.push_back(s);
25             i=pos+pattern.size()-1;
26         }
27     }
28     return result;
29 }
30
31 int main()
32 {
33     std::string str;
34     std::cout<<"Please input str:"<<std::endl;
35     //std::cin>>str;
36     getline(std::cin,str);
37     std::string pattern;
38     std::cout<<"Please input pattern:"<<std::endl;
39     //std::cin>>pattern;
40     getline(std::cin,pattern);//用于获取含空格的字符串
41     std::vector<std::string> result=split(str,pattern);
42     std::cout<<"The result:"<<std::endl;
43     for(int i=0; i<result.size(); i++)
44     {
45         std::cout<<result[i]<<std::endl;
46     }
47
48     std::cin.get();
49     std::cin.get();
50     return 0;
51 }


内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  Vector c++ string