CString 常用方法详解 CString 是 C++ 中一个常用的字符串类,它在面向对象的编程设计中应用非常广泛。因此,灵活掌握 CString 的使用方法是非常关键的。本文将详细介绍 CString 中的一些常用方法,包括 Compare、CompareNoCase、Collate、CollateNoCase、构造函数、Delete、Empty、Find 等。 一、Compare 方法 Compare 方法是 CString 中一个非常重要的方法,它用于比较两个字符串的大小。该方法的声明为: int Compare(LPCTSTR lpsz) const; 该方法将当前 CString 对象与参数 lpsz 进行比较。如果当前 CString 对象小于 lpsz,返回 -1;如果当前 CString 对象大于 lpsz,返回 1;如果当前 CString 对象等于 lpsz,返回 0。 例如: ```cpp CString s1("abc"); CString s2("abd"); ASSERT(s1.Compare(s2) == -1); ASSERT(s1.Compare("abe") == -1); ``` 二、CompareNoCase 方法 CompareNoCase 方法与 Compare 方法类似,但是它不区分大小写。该方法的声明为: int CompareNoCase(LPCTSTR lpsz) const; 例如: ```cpp CString s1("abc"); CString s2("ABD"); ASSERT(s1.CompareNoCase(s2) == -1); ``` 三、Collate 方法 Collate 方法与 Compare 方法类似,但是它使用 locale 依赖的排序规则进行比较。该方法的声明为: int Collate(LPCTSTR lpsz) const; 例如: ```cpp CString s1("abc"); CString s2("abd"); ASSERT(s1.Collate(s2) == -1); ``` 四、CollateNoCase 方法 CollateNoCase 方法与 CompareNoCase 方法类似,但是它使用 locale 依赖的排序规则进行比较,不区分大小写。该方法的声明为: int CollateNoCase(LPCTSTR lpsz) const; 例如: ```cpp CString s1("abc"); CString s2("ABD"); ASSERT(s1.CollateNoCase(s2) == -1); ``` 五、构造函数 CString 类提供了多种构造函数,可以使用不同的方式初始化 CString 对象。例如: ```cpp CString s1; // 默认构造函数 CString s2("cat"); // 使用字符串常量初始化 CString s3(s2); // 使用另一个 CString 对象初始化 CString s4('x'); // 使用字符初始化 CString s5('x', 6); // 使用字符和次数初始化 CString s6((LPCSTR)ID_FILE_NEW); // 使用资源字符串初始化 ``` 六、Delete 方法 Delete 方法用于删除 CString 对象中的某个子串。该方法的声明为: int Delete(int nIndex, int nCount = 1); 其中,nIndex 是要删除的第一个字符的索引,nCount 是要删除的字符个数。如果 nCount 超过了要删除的子串的长度,将会导致错误。 例如: ```cpp CString str1("nihao"); str1.Delete(2, 3); // 删除从索引 2 开始的 3 个字符 ``` 七、Empty 方法 Empty 方法用于清空 CString 对象。该方法的声明为: void Empty(); 例如: ```cpp CString s("abc"); s.Empty(); ASSERT(s.GetLength() == 0); ``` 八、Find 方法 Find 方法用于查找 CString 对象中的某个子串。该方法的声明为: int Find(TCHAR ch) const; int Find(LPCTSTR lpszSub) const; int Find(TCHAR ch, int nStart) const; int Find(LPCTSTR lpszSub, int nStart) const; 该方法返回查找到的子串的索引,如果未找到则返回 -1。 例如: ```cpp CString s("abcdef"); ASSERT(s.Find('c') == 2); ASSERT(s.Find("de") == 3); CString str("The stars are aligned"); int n = str.Find('e', 5); ASSERT(n == 12); ``` CString 类提供了多种实用的方法,可以满足各种字符串处理需求。熟练掌握这些方法可以让我们的编程工作变得更加高效。
- 粉丝: 1
- 资源: 4
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助