• QQ
  • nahooten@sina.com
  • 常州市九洲新世界花苑15-2

文章博客

C++ 字符串的分割函数slicesplite

原创内容,转载请注明原文网址:http://homeqin.cn/a/wenzhangboke/2019/0908/632.html

 
之前常州网站开发培训在C#中总用到字符串的分割,运用系统函数即可,比方:
 
string a = "This is a test";
 
string[] strArray = a.Split(' ');
 
在C++中string没有直接的分割函数,能够应用C的stroke函数封装一个分割办法:
 
vector<string> split(const string& str, const string& delim) {  
vector<string> res;  
if("" == str) return res;  
//先将要切割的字符串从string类型转换为char*类型  
char * strs = new char[str.length() + 1] ; //不要忘了  
strcpy(strs, str.c_str());   
char * d = new char[delim.length() + 1];  
strcpy(d, delim.c_str());  
char *p = strtok(strs, d);  
while(p) {  
string s = p; //分割得到的字符串转换为string类型  
res.push_back(s); //存入结果数组  
p = strtok(NULL, d);  
}  
return res;  
要应用分割函数时调用如下:
 
企业培训string是其他C#项目的数据传输string
 
string str1 = "M135buffer.buffer,|M135data.data1,4.22424|M135data.data6,-0.0714111|M135data.data7,-0.53833|M135data.data11,145.569|M135data.data16,5.0354|M135data.data17,-112.906|M135data.data21,4.34509|M135data.data22,-0.115356|M135data.data23,0|M135data.data24,-14|M135data.data25,49521|M135data.data_lng,0|M135data.data26,-14|M135data.data27,49521|M135data.data_lati,0";
string str2 = "|This is a test!\n";
string str = str1+str2;
printf(str.c_str());
vector<string> AllStr = split(str,"|");
for (int i=0; i<AllStr.size();i++)
{
vector<string> tempStr = split(AllStr[i],",");
if(tempStr.size()>=2)
{
printf("Name:%s  Value:%s\n",tempStr[0].c_str(),tempStr[1].c_str());
}
}
常州软件技术培训运转结果如下:

上篇:上一篇:Android简单实现百度舆图表现及定位
下篇:下一篇:没有了