CString基本操作

本文解释基本的 CString 操作,包括:

  • 从标准 C 字符串创建 CString 对象
  • 访问 CString 中的单个字符
  • 串接两个 CString 对象
  • 比较 CString 对象

CString 类提供成员函数和重载运算符,它们可以复制(在某些情况下甚至超越)C 运行时库的字符串服务(例如 strcat )。

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

可将 C 样式的字符串分配给一个 CString ,就像可将一个 CString 对象分配到另一个 CString 对象一样:

  • 将 C 字符串的值分配到 CString 对象: CString myString = "This is a test";
  • 将一个 CString 的值分配到另一个 CString 对象: CString oldString = "This is a test"; CString newString = oldString;

    将一个 CString 对象分配到另一个 CString 对象时,将复制该 CString 对象的内容。因此,两个字符串不会共享一个对组成字符串的实际字符的引用。有关使用 CString 对象作为值的更多信息,请参见文章 CString 语义 。 注意 若要编写应用程序,以便为 Unicode 或 ANSI 对其进行编译,请使用 _T 宏来编写字符串的代码。有关更多信息,请参见文章 Unicode 和多字节字符集 (MBCS) 支持 。

访问 CString 中的单个字符

可使用 GetAt SetAt 成员函数来访问 CString 对象中的单个字符。还可使用数组元素、下标、运算符 ( [ ] )(而不是 GetAt )来获取单个字符,这与按索引来访问数组元素相似,正如在标准的 C 样式字符串中那样)。 CString 字符的引索值是从零开始的。

并置两个 CString 对象

要并置两个 CString 对象,请使用串联运算符( + += ),如下所示:

CString s1 = "This "; // Cascading concatenation

s1 += "is a ";

CString s2 = "test";

CString message = s1 + "big " + s2; // Message contains "This is a big test".

必须至少有一个串联运算符( + += )的参数是 CString 对象,但是能够为其他参数使用常数字符串(如 "big" )或 char (如“x”)。

比较 CString 对象

Compare 成员函数和 CString == 运算符是等效的。 Compare operator== CompareNoCase 可识别 MBCS 和 Unicode;并且 CompareNoCase 不区分大小写。 CString Collate 成员函数区分区域性,并且常常要比 Compare 慢。仅当有必要遵守当前区域指定的排序规则时,才应使用 Collate

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

Compare _mbscmp wcscmp
CompareNoCase _mbsicmp _wcsicmp
Collate _mbscoll wcscoll

CString 类重写关系运算符( < <= >= > == != )。可使用这些运算符来比较两个 CString ,如下所示:

CString s1( "Tom" );

CString s2( "Jerry" );

if( s1 < s2 ) ...

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值