CPP文件如下:
CToken::CToken(CString& strTitle,const CString& strToken /*= _T(";")*/)
{
int nCurPos = 0;
strTitle.Replace(_T("\r"), _T(""));
strTitle.Replace(_T("\n"), _T(""));
CString strTemp = strTitle.Tokenize(strToken, nCurPos);
while (!strTemp.IsEmpty())
{
m_rData.push_back(strTemp);
strTemp = strTitle.Tokenize(strToken, nCurPos);
}
}
CToken::~CToken()
{
m_rData.clear();
}
size_t CToken::size()
{
return m_rData.size();
}
CString& CToken::operator[]( UINT nIndex )
{
ASSERT(nIndex < size());
return m_rData[nIndex];
}
H文件如下:
class CToken
{
public:
CToken(CString& strTitle,const CString& strToken = _T(";"));
~CToken();
public:
size_t size();
CString& operator[](UINT nIndex);
private:
RowData m_rData;
};
使用举例:
CString strInfo(_T("para1;para2;para3"));
CToken token(strInfo,_T(";"));
for (int i = 0; i < token.size(); i++)
{
cout << token[i] << endl;
}
可以提取出以任何符号分隔的字符串.