因为在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();依次往后找即可。