您好,登錄后才能下訂單哦!
本文小編為大家詳細介紹“C++11怎么實現字符串分割”,內容詳細,步驟清晰,細節處理妥當,希望這篇“C++11怎么實現字符串分割”文章能幫助大家解決疑惑,下面跟著小編的思路慢慢深入,一起來學習新知識吧。
C++11 字符串分割代碼示例如下
#include <iostream> #include <string> #include <vector> #include <regex> using namespace std; //沒有使用C++11特性 vector<string> testSplit(string srcStr, const string& delim) { int nPos = 0; vector<string> vec; nPos = srcStr.find(delim.c_str()); while(-1 != nPos) { string temp = srcStr.substr(0, nPos); vec.push_back(temp); srcStr = srcStr.substr(nPos+1); nPos = srcStr.find(delim.c_str()); } vec.push_back(srcStr); return vec; } //使用C++11特性 vector<string> testSplit11(const string& in, const string& delim) { vector<string> ret; try { regex re{delim}; return vector<string>{ sregex_token_iterator(in.begin(), in.end(), re, -1), sregex_token_iterator() }; } catch(const std::exception& e) { cout<<"error:"<<e.what()<<std::endl; } return ret; } int main() { vector<string>ret = testSplit("how many credits ?", " "); for(int i = 0 ; i < ret.size(); ++i) { cout<<ret[i]<<endl; } return 0; }
#include <iostream> #include <vector> using namespace std; vector<string> split( strData ) { vector<string> vecData; int nPos = strData.find( "," ); while( nPos > 0 ) { strTmp = strLine.substr( 0, nPos ); vecData.push_back( strTmp ); strLine.erase( 0, nPos+1 ); nPos = strData.find( "," ); } vecData.push_back( strData ); return vecData; }
讀到這里,這篇“C++11怎么實現字符串分割”文章已經介紹完畢,想要掌握這篇文章的知識點還需要大家自己動手實踐使用過才能領會,如果想了解更多相關內容的文章,歡迎關注億速云行業資訊頻道。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。