chris_mrs 2021-05-14 12:53 采纳率: 50%
浏览 91
已采纳

求解一道C++测试题

输入字符串如“#,#;#,#,#;”。例如:3;7,8;10,11; 这样按“;”分隔,分隔出的字符串再按“,”分隔。装入vector〈vector〈int〉〉中,并在List控件中显示所有排列组合,如下图所示! 函数的形参列表只有(const CString& str,vector〈vector〈int〉〉& vec)

  • 写回答

2条回答 默认 最新

  • qfl_sdu 2021-05-14 13:26
    关注

    代码如下:(如有帮助,请采纳,谢谢)

    //遇到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);
    	}
    

    如果想弄成一个函数,自己封装一下就可以了。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥15 c语言怎么用printf(“\b \b”)与getch()实现黑框里写入与删除?
  • ¥20 怎么用dlib库的算法识别小麦病虫害
  • ¥15 华为ensp模拟器中S5700交换机在配置过程中老是反复重启
  • ¥15 java写代码遇到问题,求帮助
  • ¥15 uniapp uview http 如何实现统一的请求异常信息提示?
  • ¥15 有了解d3和topogram.js库的吗?有偿请教
  • ¥100 任意维数的K均值聚类
  • ¥15 stamps做sbas-insar,时序沉降图怎么画
  • ¥15 买了个传感器,根据商家发的代码和步骤使用但是代码报错了不会改,有没有人可以看看
  • ¥15 关于#Java#的问题,如何解决?