求解一道C++测试题

输入字符串如“#,#;#,#,#;”。例如: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