如何统计cstring的/r/n数目

因为在mfc里想实现drawtext的rect大小随行数变化,所以我想统计/r/n的数目,但不知道如何实现。


int getCountStr(CString strLongstr, CString strFindstr)
{
int index = strLongstr.Find(strFindstr);

int nCount = 0;

while(index != -1)
{
    nCount++;

   index = strLongstr.Find(strFindstr, index + 1);
}

return nCount;

}

// 测试
void main()
{

CString str = "abcqwerabchlhlkabc";

CString strFindstr = "abc";

int nCount = getCountStr(str, strFindstr);

CString strCount;
strCount.Format("%d", nCount);

AfxMessageBox(strCount);

}

 最简单的,只要几行
CString s1 = str.Replace("\r\n", "");
int count = (str.GetLength() - s1.GetLength()) / 2;
思路很简单,将所有的\r\n替换成空字符串,则两个字符串长度的差的一半就是发生了几次替换,也就是几个\r\n

CString::Find();依次往后找即可。