从一字符串中,提取以指定字符分隔的字符串数组
2017-02-23 20:49
232 查看
/*
名称:从一字符串中,提取以指定字符分隔的字符串数组
说明:类似于正则表达式。如/d1/d2/d3(‘/’为分隔字符),将会提取d1,d2,d3字符数组。
其中开头和结尾是否有分隔字符,不影响提取。如(d1/d2/d3和d1/d2/)。
*/
名称:从一字符串中,提取以指定字符分隔的字符串数组
说明:类似于正则表达式。如/d1/d2/d3(‘/’为分隔字符),将会提取d1,d2,d3字符数组。
其中开头和结尾是否有分隔字符,不影响提取。如(d1/d2/d3和d1/d2/)。
*/
# include"iostream" #include"vector" using namespace std; class DesStr { public: vector<string> des_str; //最后提取的字符数组 char spe_char; //作为提取标准的特殊的字符 DesStr( char c = '/') //可以指定任意字符 { spe_char = c; } //设置指定字符 void SetSpeChar(char c){spe_char = c;} //主要部分,获得分隔后的字符数组 void GetSpeStr(string str) { int fir = 0,sec,flag = 0; string temp_str; if(str[0] != spe_char) //第一个字符不是特殊字符 如: d1 /d2/d3(‘/’为特殊字符) { fir = -1; flag = 1; } for(int i = 0;i<str.size();++i) { if(str[i] == spe_char) { if(flag == 0) { fir = i; flag = 1; } else { sec = i; temp_str = str.substr(fir+1,sec-fir-1); if(temp_str != "") des_str.push_back(temp_str); //将获取的字符压入目标字符数组中 fir = sec; //为下一次提取做准备 } } } //解决末尾无特殊字符的问题,如 /ab/cd if(fir != str.size() - 1 ) { temp_str = str.substr(fir+1,str.size()-1-fir); des_str.push_back(temp_str); } } //显示得到的字符数组 void Show() { vector<string>::iterator iter; for(iter = des_str.begin();iter != des_str.end();++iter) { cout<<*iter<<endl; } } }; int main() { DesStr ex('/'); string temp ; while(cin>>temp) { ex.GetSpeStr(temp); ex.Show(); ex.des_str.clear(); } return 0; }
相关文章推荐
- 将数组转化为字符串,并用指定字符分隔(Array&ArrayList)
- 根据指定字符把字符串拆分为数组
- 程序员面试指南(第六章) 数组和字符串(C#版) 2.从字符串中删除指定的字符
- CString字符串类型中提取以特定字符分隔的子串
- 编写一个函数,它从一个字符串中提取一个子字符串。函数原型如下: Int substr(char dst[], char src[],int start, int len) {} 目标是:从src数组
- javascript 根据指定字符把字符串拆分为数组
- 在一个字符串中删除指定的字符 & 删除字符串中所有出现在另一个字符数组中的字符
- 「斩」substr() //从起始索引号提取字符串中指定数目的字符 20140825 ①文本处理
- 以字符串中的指定字符来分隔字符
- C# 中如何将List<string>里的集合转换成字符串并按指定的字符进行分隔?
- 按指定的字符把字符串分割为字符串数组
- 数组和字符串操作(C#) 1、从字符串中删除指定字符
- 一个扩展后的Split方法,可根据字符串分隔字符,返回字符数组
- 将字符串p,以token字符进行分隔,结果保存到fields 数组中
- 提取CString中以某个字符为分隔标志的所有字符串-AfxExtractSubString
- 按照指定的字符串分割字符串形成字符数组
- 关于Excel操作编写的一个软件设计构思案例[连载] --如何实现从字符串中提取需要的字符并赋值给指定单元格内
- strchr的返回值提取字符串指定两个字符之间的字符串
- JavaSE 之 如何将一个用逗号分隔的字符串转换成字符数组
- CString 字符串 按指定字符 分隔 获取第n段的子字符串