16,472
社区成员
发帖
与我相关
我的任务
分享
///****************************************************************************
//*
//* 函数指针: SplitCString
//* 描 述: 将字符串按给定的符号进行拆分
//* 创 建:
//*
//* 返 回: [int] - 拆分后的子串个数
//*
//* 函数参数 :[in] strIn - 需要进行拆分的字符串
//* [out] strAryRe- 拆分后的字符串数组
//* [in] c - 分割符
///****************************************************************************
int SplitCString(CString strIn, CStringArray& strAryRe, char division)
{
strAryRe.RemoveAll();
if (!strIn.IsEmpty())
{
int nCount = 0;
int nPos = -1;
nPos = strIn.Find(division);
CString strTemp = strIn;
while (nPos != -1)
{
CString strSubString = strTemp.Left(nPos);
strTemp = strTemp.Right(strTemp.GetLength() - nPos-1);
nPos = strTemp.Find(division);
nCount++;
strAryRe.Add(strSubString);
}
if (nCount == strAryRe.GetSize())
{
CString str;
int nSize = strIn.ReverseFind(division);
str = strIn.Right(strIn.GetLength()-nSize-1);
strAryRe.Add(str);
}
}
return strAryRe.GetSize();
}
int SplitCString(CString strIn, vector<CString>& out, char division)
{
int index = 0; // 子串索引
CString substr;
while(AfxExtractSubString(substr, strIn, index++, division))
{
out.push_back(substr);
}
if (index - 1 == 1) // 没有字串,这时得到的字串为本身
{
out.clear();
return 0;
}
return index - 1;
}
if (index - 1 == 1) // 没有字串,这时得到的字串为本身
{
out.clear();
return 0;
}
去掉就行了[/quote]
对,你在这里清空了。太感谢了,果然简洁明了多了if (index - 1 == 1) // 没有字串,这时得到的字串为本身
{
out.clear();
return 0;
}
去掉就行了