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