本文小编为大家详细介绍“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;}
C++ 实现字符串分割函数 split
#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怎么实现字符串分割”文章已经介绍完毕,想要掌握这篇文章的知识点还需要大家自己动手实践使用过才能领会,如果想了解更多相关内容的文章,欢迎关注编程网行业资讯频道。