1.GetBufferSetLength( )、ReleaseBuffer( )、SpanExcluding( )
void CDemoDlg::OnBnClickedButton1()
{
CString strMsg;
// 无论是Unicode字符集 还是 多字节字符集 _T("STSA") 或 L"STSA" 或 "STSA" 皆可
strMsg = _T("STSA");
strMsg.GetBufferSetLength(MAX_PATH);
strMsg.ReleaseBuffer();
//提取一行数据
CString str = strMsg.SpanExcluding(_T("\r\n"));
AfxMessageBox(str);
//采用多字节字符集时可以不用 _T 或 L"\\SubDir"
strMsg = strMsg + _T("\\SubDir");
AfxMessageBox(strMsg);
}
运行结果如下:
2.Compare( )
void CDemoDlg::OnBnClickedButton2()
{
CString str(_T("MRKJ"));
if(str.Compare(_T("MRKJ")) == 0)
{
//Unicode 字符集 需要采用 AfxMessageBox(_T("相等")); // 需采用 _T 或 L
AfxMessageBox(_T("相等"));
}
else
{
AfxMessageBox(_T("不相等"));
}
}
运行结果如下:
3.Replace( )
void CDemoDlg::OnBnClickedButton3()
{
CString str = _T("ok,mrkj");
//Replace()函数 返回值:如果发生了替换,返回值为 1; 如果未发生替换,则返回值为 0
int count = str.Replace(_T("mk"), _T("hello")); // 替换字符串
CString m_edit1;
m_edit1.Format(_T("%d"), count);
AfxMessageBox(m_edit1);
AfxMessageBox(str);
}
运行结果如下:
4.GetLength( )、TrimRight( )
void CDemoDlg::OnBnClickedButton4()
{
CString str1 = _T("abcde---abcde "); //最后是 1 个空格
int m_iOne = str1.GetLength();
CString m_edit1;
m_edit1.Format(_T("%d"), m_iOne);
AfxMessageBox(m_edit1); // 14
AfxMessageBox(str1); //
CString str2;
str2 = str1.TrimRight();
int m_iTwo = str2.GetLength();
CString m_edit2;
m_edit2.Format(_T("%d"), m_iTwo);
AfxMessageBox(m_edit2); // 13
AfxMessageBox(str2);
}
运行结果如下:
注意:此时最后有 1 个空格
注意:此时最后没有空格