CString没有基类。
一个CString对象由
可变长度的一队字符组成。CString使用类似于Basic的语法提供函数和操作符。连接和比较操作符以及简化的内存管理使CString对象比普通字符串数组容易使用。
CString是
基于TCHAR数据类型的对象。如果在你的程序中定义了符号_UNICODE,则TCHAR被定义为类型wchar_t,即16位字符类型;否则,TCHAR被定义为char,即8位字符类型。在UNICODE方式下,CString对象由16位字符组成。非UNICODE方式下,CString对象由8位字符组成。
当不使用_UNICODE时,CString是多字节字符集(MBCS,也被认为是双字节字符集,DBCS)。注意,对于MBCS字符串,CString仍然基于8位字符来计算,返回,以及处理字符串,并且你的应用程序必须自己解释MBCS的开始和结束字节。
CString对象还具有下列特征:
·
|
CString可作为连接操作的结果而增大。
|
·
|
CString对象遵循“值语义”。应将CString看作是一个真实的字符串而不是指向字符串的指针。
|
·
|
你可以使用CString对象任意替换const char*和LPCTSTR函数参数。
|
·
|
转换操作符使得直接访问该字符串的字符就像访问一个只读字符(C-风格的字符)数组一样。 |
提示:如果可能的话,应在框架中而不是堆中分配这个CString对象。这可以节省内存并简化参数的传递。
CString允许两个具有相同值的字符串共享相同的缓冲空间,这有助于你节省内存空间。但是,如果你初始直接改变该缓冲的内容(不使用MFC),则有可能在无意中改变了两个字符串。CString提供了两个成员函数CString::LockBuffer和CString::UnlockBuffer来帮助你保护你的数据。当你调用LockBuffer时,你就创建了一个字符串的一个拷贝,然后将引用计数设置为-1,这就“加锁”了该缓冲区。当缓冲区被加锁时,就没有其它的字符串可以引用该字符串中的数据,被加锁的字符串也不能引用其它字符串的数据。通过加锁该缓冲区内的字符串,就可以保证该字符串对数据的持续独占。当你使用完数据后,调用UnlockBuffer来将引用计数恢复为1。
更多的信息,参见“Visual C++程序员指南”中的“MFC字符串”和“字符串:Unicode和多字节字符集(MBCS)支持”,以及“Microsoft Visual C++库参考”中的“Microsoft Visual C++ 6.0运行库参考”。
#include <afx.h>
CString类成员
构造
字符串数组
分配/串联
比较
提取
Mid
|
提取一个字符串的中间一部分(类似于BASIC的MID$函数)
|
Left
|
提取一个字符串的左边一部分(类似于BASIC的LEFT$函数)
|
Right
|
提取一个字符串的右边一部分(类似于BASIC的RIGHT$函数)
|
SpanIncluding
|
提取一个字符串,该子字符串中仅含有某一字符集合中的字符。
|
SpanExcluding
|
提取一个字符串,该子字符串中不含有某一字符集合中的字符。 |
其他转换
搜索
归档/存储
缓冲区访问
Windows专用