基本 CString 操作 您所在的位置:网站首页 mfcformat函数 基本 CString 操作

基本 CString 操作

2023-11-12 21:08| 来源: 网络整理| 查看: 265

基本 CString 操作 项目 04/03/2023

本主题介绍以下基本 CString 操作:

从标准 C 文本字符串创建 CString 对象

访问 CString 中的单个字符

连接两个 CString 对象

比较 CString 对象

转换 CString 对象

Class CString 基于类模板 CStringT 类。 CString 是 CStringT 的一个 typedef。 更确切地说,CString 是对 CStringT 的显式专用化的 typedef,它是使用类模板来定义类的常见方法。 进行类似定义的类是 CStringA 和 CStringW。

CString、CStringA 和 CStringW在 atlstr.h 中定义。 CStringT 在 cstringt.h 中定义。

CString、CStringA 和 CStringW 都获得一组由 CStringT 定义的方法和运算符,可以与支持的字符串数据配合使用。 某些方法重复,在某些情况下优于 C 运行时库的字符串服务。

注意:CString 是原生类。 对于用在 C++/CLI 托管项目中的字符串类,请使用 System.String。

从标准 C 文本字符串创建 CString 对象

可以将 C 样式的文本字符串分配给一个 CString,正如你可以将一个 CString 对象分配给另一个一样。

将 C 文本字符串的值分配给 CString 对象。

CString myString = _T("This is a test");

将一个 CString 的值分配给另一个 CString 对象。

CString oldString = _T("This is a test"); CString newString = oldString;

将一个 CString 对象分配给另一个时,将复制 CString 对象的内容。 因此,这两个字符串不共享对构成字符串的实际字符的引用。 若要详细了解如何使用 CString 对象作为值,请参阅 CString 语义。

注意

若要编写应用程序,以便可以针对 Unicode 或 ANSI 编译该应用程序,请使用 _T 宏对文本字符串进行编码。 有关详细信息,请参阅 Unicode 和多字节字符集 (MBCS) 支持。

访问 CString 中的单个字符

可以使用 GetAt 和 SetAt 方法访问 CString 对象中的单个字符。 还可以使用数组元素(或下标)运算符 ( [ ] ) 而非 GetAt 来获取单个字符。 (这类似于按索引访问数组元素,正如在标准 C 样式字符串中所做的那样)CString 字符的索引值从零开始。

连接两个 CString 对象

若要连接两个 CString 对象,请使用连接运算符(+ 或 +=),如下所示。

CString s1 = _T("This "); // Cascading concatenation s1 += _T("is a "); CString s2 = _T("test"); CString message = s1 + _T("big ") + s2; // Message contains "This is a big test".

连接运算符(+ 或 +=)的至少一个参数必须是 CString 对象,但你可以对另一个参数使用常量字符串(例如 "big")或 char(例如“x”)。

比较 CString 对象

Compare 方法和 CString 的 == 运算符等效。 Compare、运算符 == 和 CompareNoCase 是 MBCS 和 Unicode 感知型;CompareNoCase 也不区分大小写。 CString 的 Collate 方法区分区域设置,其速度通常比 Compare 慢。 Collate 仅在你必须遵守当前区域设置指定的排序规则的地方使用。

下表显示了可用的 CString 比较函数及其在 C 运行时库中的等效 Unicode/MBCS 可移植函数。

CString 函数 MBCS 函数 Unicode 函数 Compare _mbscmp wcscmp CompareNoCase _mbsicmp _wcsicmp Collate _mbscoll wcscoll

CStringT 类模板定义关系运算符(、== 和 !=),可供 CString 使用。 可以使用这些运算符比较两个 CStrings,如以下示例所示。

CString s1(_T("Tom")); CString s2(_T("Jerry")); ASSERT(s2 < s1); 转换 CString 对象

若要了解如何将 CString 对象转换为其他字符串类型,请参阅如何:在各种字符串类型之间进行转换。

将 CString 与 wcout 配合使用

若要将 CString 与 wcout 配合使用,必须以显式方式将该对象强制转换为 const wchar_t*,如以下示例所示:

CString cs("meow"); wcout


【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有