split函数
split函数是编程语言中使用的一种函数名称,它是指返回一个下标从零开始的一维数组,split函数包含指定数目的子字符串。
Java中的 split 函数是用于按指定字符(串)或正则去分割某个字符串,结果以字符串数组形式返回。
如:
1 2 3
| String str="1234@abc"; String[] a = str.split("@"); System.out.println("处理结果: "+a[0]+","+a[1]);
|
但是C++标准库里面没有字符分割函数split。
自己实现split函数
参考:C++常见问题: 字符串分割函数 split
1 2 3 4 5 6 7 8 9 10 11 12
| void SplitString(const string& s, vector<string>& v, const string& c) { string::size_type pos1, pos2; pos2 = s.find(c); pos1 = 0; while (string::npos != pos2) { v.push_back(s.substr(pos1, pos2 - pos1)); pos1 = pos2 + c.size(); pos2 = s.find(c, pos1); } if (pos1 != s.length()) v.push_back(s.substr(pos1)); }
|
用C语言中的strtok 函数来进行分割
原型: char strtok(char str, const char *delim);
strtok函数包含在头文件中,对于字符数组可以采用这种方法处理。当然也可以将字符数组转换成字符串之后再使用法一。测试代码如下
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
| #include <string.h> #include <stdio.h>
int main(){ char s[] = "a,b*c,d"; const char *sep = ",*"; char *p; p = strtok(s, sep); while(p){ printf("%s ", p); p = strtok(NULL, sep); } printf("\n"); return 0; }
|
最后更新时间:
本文链接:
https://hankin2015.github.io/2017/12/08/20171208SplitFunction/版权声明: 本站所有文章除特别声明外,均采用 CC BY-NC-SA 3.0 许可协议。转载请注明出处!
v1.5.2