C++ string字串分割成一個數組
阿新 • • 發佈:2019-01-24
C++的string型別可以很方便的操作字串,但是在使用中發現不支援Split,為了滿足使用的需要,我自己寫了一個分割函式
#include <string> #include <vector> using std::string; //使用string物件 using std::vector; //使用vector //字串分割到陣列 void Split(const string& src, const string& separator, vector<string>& dest) { string str = src; string substring; string::size_type start = 0, index; dest.clear(); index = str.find_first_of(separator,start); do { if (index != string::npos) { substring = str.substr(start,index-start ); dest.push_back(substring); start =index+separator.size(); index = str.find(separator,start); if (start == string::npos) break; } }while(index != string::npos); //the last part substring = str.substr(start); dest.push_back(substring); }
測試程式碼如下:
void main( int _Argc, char ** _Argv)
{
vector<string> Data;
Split("1,2,3,4,5,6",",",Data);
for (int i=0;i<Data.size();i++)
{
printf("%s ",Data[i].c_str());
}
printf("\n");
system("pause");
}
執行結果:
1 2 3 4 5 6