C 字串分割簡潔版

2021-09-12 14:24:15 字數 874 閱讀 6363

c++ string沒有現成的split函式,可能考慮到split之後是個string的陣列,這個陣列如果讓stl的容器儲存的話,就會和容器耦合在一起,而且一般split還會支援正規表示式,那麼就又會發生耦合了,作為一貫的簡潔風格,就沒有新增(瞎猜的,哈哈)。據說boost庫中有,但是得要安裝boost,還是自己動手完成比較快捷,這裡在網上蒐集了一些,發現很多都比較冗長,這裡找到一些前輩們不錯的**段

使用了sstream中的istringstream,以及std::getline函式進行分割

#include#include#includevector&split(const string &str, char delim, vector&elems, bool skip_empty = true)
每次找到間隔字串delimiters的位置pos,從字串起始位置i開始,取長度為 pos - i 長度的子串即為要分割的串

vectorsplit(const string& str,const string& delim, vector& elems) 

string strs = str + delim; //*****擴充套件字串以方便檢索最後乙個分隔出的字串

size_t size = strs.size();

int pos; // 發現delim的下標

int i = 0; // 待加入elem容器字串的起始位置

while(i < size)

}return elems;

}

原**

[1] 字串分割技術

[2] c++ 如何使用stringstream來分隔逗號分隔的字串

[3] c++之split字串分割

C 字串分割

c 中的字元分割是乙個常見的應用,下面是乙個字串分割的 字串分割 vectorsplit string const string str,const string delimiters else pos delim split str.find delimiters res.push back sp...

字串分割 C

經常碰到字串分割的問題,這裡總結下,也方便我以後使用。一 用strtok 函式進行字串分割 原型 char strtok char str,const char delim 功能 分解字串為一組字串。引數說明 str為要分解的字串,delim為分隔符字串。返回值 從str開頭開始的乙個個被分割的串。...

字串分割 C

經常碰到字串分割的問題,這裡總結下,也方便我以後使用。一 用strtok 函式進行字串分割 原型 char strtok char str,const char delim 功能 分解字串為一組字串。引數說明 str 為要分解的字串,delim 為分隔符字串。返回值 從s tr開頭開始的乙個個被分割...