C++语言不像java语言直接就封装好了字符串分割函数,而需要借助C库函数strtok
C 库函数 char *strtok(char *str, const char *delim) 分解字符串 str 为一组字符串,delim 为分隔符。具体信息请查看下面链接。
C 库函数 – strtok() | 菜鸟教程
手动实现split字符串切分函数,代码如下:
#includeusing namespace std; #include #include vector split(string s, string delim){ vector ret; // 判断字符串是否为空 if("" == s){ return ret; } // 先将要切割的字符串从string类型转换为char*类型 char* strs = new char[s.length()+1]; strcpy(strs, s.c_str()); char* d = new char[delim.length()+1]; strcpy(d, delim.c_str()); // 切分字符串 char* p = strtok(strs, d); while(p != NULL){ string s = p; ret.push_back(s); p = strtok(NULL, d); } return ret; } int main(){ string s = "absc迎dddsa-asd-asd----asdasa--"; string delim = "-"; vector ret = split(s, delim); for(string& str : ret){ cout << str << endl; } }
输出结果:



