上一节讲了分割窗口的有关知识,本节开始讲解MFC的一些常用类,先来说说CString类。
CString类简介
CString类作为MFC的常用类,当之无愧。可以这样说,只要是从事MFC开发,基本都会遇到使用CString类的场合。因为字符串的使用比较普遍,而CString类又提供了对字符串的便捷操作,所以它给MFC开发人员带来了高的开发效率,受到了开发者的欢迎。
大家使用VS2010的话,可能会见到CStringT,实际上它是一个操作可变长度字符串的模板类。CStringT模板类有三个实例:CString、CStringA和CStringW,它们分别提供对TCHAR、char和wchar_t字符类型的字符串的操作。char类型定义的是Ansi字符,wchar_t类型定义的是Unicode字符,而TCHAR取决于MFC工程的属性对话框中的Configuration Properties->General->Character Set属性,如果此属性为Use Multi-Byte Character Set,则TCHAR类型定义的是Ansi字符,而如果为Use Unicode Character Set,则TCHAR类型定义的是Unicode字符。
三个字符串类的操作是一样的,只是处理的字符类型不同。以CString类为讲解对象。
CString类的字符串操作
- CString类的构造函数
CString类有很多构造函数,这里只介绍几个比较常用的:
将一个已经存在的CString对象stringSrc的内容拷贝到该CString对象。例如:
将字符串lpch中的前nLength个字符拷贝到该CString对象。例如:
使用此函数构造的CString对象中将含有nLength个重复的ch字符。例如:
- CString类的大小写转换及顺序转换函数
将字符串中的所有大写字符转换为小写字符。
将字符串中的所有小写字符转换为大写字符。
将字符串中所有字符的顺序颠倒。
例如:
- CString对象的连接
多个CString对象的连接可以通过重载运算符+、+=实现。例如:
- CString对象的比较
CString对象的比较可以通过==、!=、<、>、<=、>=等重载运算符实现,也可以使用Compare和CompareNoCase成员函数实现。
将该CString对象与psz字符串比较,如果相等则返回0,如果小于psz则返回值小于0,如果大于psz则返回值大于0。
此函数与Compare功能类似,只是不区分大小写。
例如:
- CString对象字符串的提取操作
提取该字符串左边nCount个字符的子字符串,并返回一个包含这个子字符串的拷贝的CString对象。
提取该字符串右边nCount个字符的子字符串,并返回一个包含这个子字符串的拷贝的CString对象。
提取该字符串中以索引iFirst位置开始直至字符串结尾的子字符串,并返回一个包含这个子字符串的拷贝的CString对象。
例如:
- CString对象字符串的查找操作
在CString对象字符串的iStart索引位置开始,查找子字符串pszSub或字符ch第一次出现的位置,如果没有找到则返回-1。
查找pszCharSet字符串中的任意字符,返回第一次出现的位置,找不到则返回-1。
从字符串末尾开始查找指定的字符ch,返回其位置,找不到则返回-1。这里要注意,尽管是从后向前查找,但是位置的索引还是要从开始算起。
- CString类对象字符串的替换与删除
用字符chNew替换CString对象中的字符chOld,返回替换的字符个数。
从字符串中删除iIndex位置开始的nCount个字符,返回删除操作后的字符串的长度。
删除字符串中的所有由chRemove指定的字符,返回删除的字符个数。
例如:
- CString类的格式化字符串方法
使用CString类的Format成员函数可以将int、short、long、float、double等数据类型格式化为字符串对象。
参数pszFormat为格式控制字符串;参数argument可选,为要格式化的数据,一般每个argument在pszFormat中都有对应的表示其类型的子字符串,int型的argument对应的应该是"%d",float型的应对应"%f",等等。
例如:
好了,关于CString类的内容就讲到这里了,用法不少,但仍不全,大家可以查看MSDN深入学习。