c 分割字串

2021-09-29 23:25:08 字數 1286 閱讀 3839

問題

對乙個string型別的字串進行分割,得到各個子字串。

方法有多種方法可以達到這個目的,每個方法都有利弊,根據專案實際情況選擇即可。

1. 使用istream_iterator

std::string text =

"let me split this into words";

std::istringstream iss

(text)

;std::vector

results

((std::istream_iterator

(iss)),

std::istream_iterator()

);

優缺點:

2. 使用 std::getline

std::vector

split

(const std::string& s,

char delimiter)

return tokens;

}

優缺點:

3. 使用 boost::split

#include

std::string text =

"let me split this into words"

;std::vector results;

boost::

split

(results, text, boost::

is_any_of

(" "))

;//boost::split(results, text, (char c));

boost::split的實現是使用多個find_if。如果輸入的string的最後是指定的分隔符,結果的最後乙個元素會是空string。

優缺點:

4. 使用 string.find方法

string tmpstr = str;

while

(tmpstr.

find

(" "

)!= string::npos)

v.push_back

(tmpstr)

;

總結

參考資料

how to split a string in c++

split string by single spaces

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開頭開始的乙個個被分割...