C/C++中自定义split函数来分割字符串,并返回vector类型数据
主要内容
为什么要自定义split函数来分割字符串呢?
本文的初衷有以下两点:
- C/C++中的Split函数是strtok()其函数原型如下::
char * strtok (char * str, const char * delimiters);
这返回的是一个char指针类型,如果想要直接返回vector类型,你有必须看一下本文。 - 想要提供一个特别简单的字符串分割方法,本方法的时间复杂度是O(n),没有使用其他的函数。
自定义split函数返回vector类型的数据?
闲话少说,直接上代码:
#include<iostream>
#include<vector>
#include<string>
using namespace std;
int main() {
string line;
cin >> line;
vector<string> strArr;
string temp = "";
int i = 0;
while (line[i] != '\0') {
if (line[i] - ',' == 0) {
strArr.push_back(temp);
temp = "";
}
else
temp = temp + line[i];
i++;
}
if(temp.length() > 0)
strArr.push_back(temp);
for (i = 0; i < strArr.size(); i++)
cout << strArr[i] << endl;
system("pause");
return 0;
}