我是C++的新手,我無法通過分隔符分割字符串,並將子字符串放入向量中。我如何將一個空字符串存儲到一個向量中
我的代碼如下:
vector<string> split(const string &s, const string &delim)
{
string::size_type pos = s.find_first_of(delim,0);
int start = 0;
vector<string> tokens;
while(start < s.size())
{
if(start++ != pos + 1)
tokens.push_back(" ");
pos = s.find_first_of(delim, start);
tokens.push_back(s.substr(start, pos - start));
}
for(vector<string>::size_type i = 0; i != tokens.size(); ++i)
cout << tokens[i];
return tokens;
}
字符串和分隔符被傳遞到函數和並執行分割。這個函數假設將空字符串放入向量中,但不會爲我做。
例如,如果我調用該函數中主要爲:
int main()
{
split("<ab><>cd<", "<>");
}
輸出假設是
"","ab","","","","cd",""
減去報價
但輸出爲我的代碼目前是
ab b cd d
任何幫助,將不勝感激。
這裏有一些相關的問題,這可能有助於:http://stackoverflow.com/questions/236129/how-to-split-a-string-in-c HTTP:/ /stackoverflow.com/questions/53849/how-do-i-tokenize-a-string-in-c http://stackoverflow.com/questions/4533652/how-to-split-string-using-istringstream-with- other-delimiter-than-whitespace http://stackoverflow.com/questio NS/5505965 /快字符串分割與 - 多定界符 – 2012-02-10 02:50:39