mfc cstring拆分函数
CString是MFC中的一个字符串类,提供了一系列的成员函数用于字符串的操作。其中也包含了拆分字符串的函数。本文将介绍CString中的拆分函数,包括Split、Tokenize以及自定义的拆分函数。
一、Split函数
Split函数是CString中最常用的拆分字符串的函数之一。它的原型如下:
int Split(CStringArray& sa, LPCTSTR lpszStr, LPCTSTR lpszDelimiters);
参数说明:
sa:用于存储拆分结果的CStringArray对象。
lpszStr:需要拆分的字符串。
lpszDelimiters:用于拆分字符串的分隔符字符串。
Split函数会按照分隔符字符串将源字符串拆分成若干个子字符串,并将结果存储在CStringArray对象中。下面是一个使用示例:
CString str = "Hello,World";
CStringArray strArray;
str.Split(strArray, ",");
Split函数将以逗号为分隔符,将字符串str拆分成两个子字符串"Hello"和"World",并将结果存储在strArray中。
二、Tokenize函数
Tokenize函数是CString中另一个拆分字符串的函数。它的原型如下:
int Tokenize(CString& strToken, int& iStart, LPCTSTR lpszSeparators);
参数说明:
strToken:用于存储拆分结果的CString对象。
iStart:指示拆分起始位置的索引,拆分完成后会自动更新为下一次拆分的起始位置。
lpszSeparators:用于拆分字符串的分隔符字符串。
Tokenize函数会按照分隔符字符串将源字符串从起始位置开始拆分成两个子字符串,并将结果存储在strToken中。下面是一个使用示例:
CString str = "Hello,World";
字符串函数strCString strToken;
int iStart = 0;
while (str.Tokenize(strToken, iStart, ",")) {
//处理拆分结果
// ...
}
上面的示例中,源字符串str通过逗号进行拆分,每次拆分后将结果存储在strToken中,并打印拆分结果。循环直至所有拆分完成。
需要注意的是,Tokenize函数会将源字符串自动切割成多个子字符串。在循环过程中,通过iStart参数来指示下一次拆分的起始位置,并将iStart更新为拆分后的起始位置。
三、自定义拆分函数
如果Split和Tokenize函数无法满足需求,我们还可以自定义拆分函数来实现特定的拆分逻辑。下面是一个示例:
void MySplit(CStringArray& sa, LPCTSTR lpszStr, LPCTSTR lpszDelimiters) {
int nLength = lstrlen(lpszStr);
int nDelimitersLength = lstrlen(lpszDelimiters);
CString strTmp;
int nStart = 0;
int i;
for (i = 0; i < nLength; i++) {
const TCHAR ch = lpszStr[i];
BOOL bIsDelimiter = FALSE;
for (int j = 0; j < nDelimitersLength; j++) {
if (ch == lpszDelimiters[j]) {
bIsDelimiter = TRUE;
break;
}
}
if (bIsDelimiter) {
if (!strTmp.IsEmpty()) {
sa.Add(strTmp);
strTmp.Empty();
}
}
else {
strTmp += ch;
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论