一、目录
二、重要源码
void CDecodeStringDlg::OnDecode()
{
// TODO: Add your control notification handler code here
UpdateData(true);
CStringArray dest; //CString数组类
char division=m_strDivision.GetAt(0);//获取分割符
StringDecode(m_strOrigin, dest, division);//分割字符串
m_ctlList.ResetContent();//清空列表框
for(int i=0;i<dest.GetSize();i++)
{
m_ctlList.AddString(dest[i]);//将分割后得到的字符串添加到列表框
}
}
void CDecodeStringDlg::StringDecode(CString source, CStringArray& dest, char division)
{
//dest.RemoveAll();
//for(int i=0;i<source.GetLength();i++)//遍历字符串
//{
// if(source.GetAt(i)== division)//找到分割符
// {
// dest.Add(source.Left(i)); //去掉右边
// for(int j=0;j<(dest.GetSize()-1);j++)
// {
// dest[dest.GetSize()-1] = dest[dest.GetSize()-1].Right(dest[dest.GetSize()-1].GetLength()-dest[j].GetLength()-1); //去掉左边
// }
// }
//}
dest.RemoveAll();
int nStart = 0;
int nEnd = source.Find(division);//查找分割符
while(nEnd > nStart)
{
dest.Add(source.Mid(nStart,nEnd - nStart));
nStart = nEnd + 1;//定位起始位置
nEnd = source.Find(division,nStart);//查找分割符
}
nEnd = source.GetLength();
if(nStart < nEnd)
dest.Add(source.Mid(nStart,nEnd - nStart));
}
三、运行结果
四、资源