输入字符串如“#,#;#,#,#;”。例如:3;7,8;10,11; 这样按“;”分隔,分隔出的字符串再按“,”分隔。装入vector〈vector〈int〉〉中,并在List控件中显示所有排列组合,如下图所示! 函数的形参列表只有(const CString& str,vector〈vector〈int〉〉& vec)
代码如下:(如有帮助,请采纳,谢谢)
//遇到ch即将字符串分割成小字符串
void CXXDlg::SplitStr(CString pStr, CString ch,vector<CString>& vReturn)
{
int nStartPos=0;
int nEndPos=0;
while((nEndPos = pStr.Find(ch,nStartPos))> 0)
{
vReturn.push_back(pStr.Mid(nStartPos,nEndPos - nStartPos));
nStartPos = nEndPos+1;
}
nEndPos=pStr.GetLength();
vReturn.push_back(pStr.Mid(nStartPos,nEndPos-nStartPos));
}
//示例:
CString str("a,b,c;22,23,23;haha,23");
vector<vector<CString> > vv;
vector<CString> vtmp;
SplitStr(str,CString(";"),vtmp);
for (int i = 0; i < vtmp.size(); i++)
{
vector<CString> v;
SplitStr(vtmp.at(i),CString(","),v);
vv.push_back(v);
}
如果想弄成一个函数,自己封装一下就可以了。
您好,我是有问必答小助手,您的问题已经有小伙伴解答了,您看下是否解决,可以追评进行沟通哦~
如果有您比较满意的答案 / 帮您提供解决思路的答案,可以点击【采纳】按钮,给回答的小伙伴一些鼓励哦~~
ps:问答VIP仅需29元,即可享受5次/月 有问必答服务,了解详情>>>https://vip.csdn.net/askvip?utm_source=1146287632