基本 CString 操作 | 您所在的位置:网站首页 › mfcformat函数 › 基本 CString 操作 |
基本 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 wcscollCStringT 类模板定义关系运算符(、== 和 !=),可供 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 实验室设备网 版权所有 |