c++ split()实现
Posted ZHOU YANG
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了c++ split()实现相关的知识,希望对你有一定的参考价值。
在c++中,没有java与python中定义的split()功能的函数,于是自己实现之。
情况1,适用范围,分隔符为字符。思路,记录分隔符的位置,判断需要截取的字符串的下标范围。
vector<string> split(string s,char ch){ int start=0; int len=0; vector<string> ret; for(int i=0;i<s.length();i++){ if(s[i]==ch){ ret.push_back(s.substr(start,len)); start=i+1; len=0; } else{ len++; } } if(start<s.length()) ret.push_back(s.substr(start,len)); return ret; }
情况2,使用范围,分隔符为字符串。思路,记录分隔字符串的起始位置,判断需要截取的字符串的下标范围。
vector<string> split(string s,string seprate){ vector<string> ret; int seprate_len=seprate.length(); int start=0; int index; while((index = s.find(seprate,start))!=-1){ ret.push_back(s.substr(start,index-start)); start = index+seprate_len; } if(start<s.length()) ret.push_back(s.substr(start,s.length()-start)); return ret; }
以上是关于c++ split()实现的主要内容,如果未能解决你的问题,请参考以下文章