本文解释基本的 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 对象作为值的更多信息,请参见文章 。
注意 若要编写应用程序,以便为 Unicode 或 ANSI 对其进行编译,请使用 _T 宏来编写字符串的代码。有关更多信息,请参见文章 。
访问 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 函数:
CString 函数 MBCS 函数 Unicode 函数 Compare _mbscmp wcscmp CompareNoCase _mbsicmp _wcsicmp Collate _mbscoll wcscoll
延伸阅读
文章来源于领测软件测试网 https://www.ltesting.net/