MFC总结(16) --- CString类的简单讲解
2015-11-19 15:59
337 查看
CString类作为MFC的常用类,它提供了对字符串的便捷操作。在MFC中可能会见到CStringT,起始它是一个操作可变长度字符串的模板类。CStringT模板类有三个实例:CString、CStringA和CStringW,它们分别提供对TCHAR、char和wchar_t字符类型的字符串的操作。char类型定义的是Ansi字符,wchar_t类型定义的是Unicode字符,而TCHAR取决于MFC工程的属性对话框中的配置属性->常规->字符集属性,如果此属性为使用多字节字符集,则TCHAR类型定义的是Ansi字符,而如果为使用Unicode字符集,则TCHAR类型定义的是Unicode字符。
![](http://img.blog.csdn.net/20151119155132692?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
1. CString类的构造函数
CString(const CString& stringSrc); 将一个已经存在的CString对象stringSrc的内容拷贝到该CString对象。例如:
CString(LPCTSTR lpch, int nLength); 将字符串lpch中的前nLength个字符拷贝到该CString对象。例如:
CString(TCHAR ch, int nLength = 1); 使用此函数构造的CString对象中将含有nLength个重复的ch字符。例如:
2. CString类的大小写转换及顺序转换函数
CString& MakeLower(); 将字符串中的所有大写字符转换为小写字符。
CString& MakeUpper(); 将字符串中的所有小写字符转换为大写字符。
CString& MakeReverse(); 将字符串中所有字符的顺序颠倒。
3. CString对象的比较
CString对象的比较可以通过==、!=、<、>、<=、>=等重载运算符实现,也可以使用Compare和
CompareNoCase成员函数实现。
int Compare(PCXSTR psz) const; 将该CString对象与psz字符串比较,如果相等则返回0,如果小于psz则返回值小于0,如果大于psz则返回值大于0。
int CompareNoCase(PCXSTR psz) const throw(); 此函数与Compare功能类似,只是不区分大小写。
4、CString对象字符串的提取操作
CString Left(int nCount) const; 提取该字符串左边nCount个字符的子字符串,并返回一个包含 这个子字符串的拷贝的CString对象。
CString Right(int nCount) const; 提取该字符串右边nCount个字符的子字符串,并返回一个包含 这个子字符串的拷贝的CString对象。
CString Mid(int iFirst,int nCount) const; 提取该字符串中以索引iFirst位置开始的nCount个字符组成的子字符串,并返回一个包含这个子字符串的拷贝的CString对象。
CString Mid(int iFirst) const; 提取该字符串中以索引iFirst位置开始直至字符串结尾的子字符 串,并返回一个包含这个子字符串的拷贝的CString对象。
5、CString对象字符串的查找操作
int Find(PCXSTR pszSub,int iStart=0) const throw( );
int Find(XCHAR ch,int iStart=0) const throw( );
在CString对象字符串的iStart索引位置开始,查找子字符串pszSub或字符ch第一次出现的位置,如果没有找到则返回-1。
int FindOneOf(PCXSTR pszCharSet) const throw( );
查找pszCharSet字符串中的任意字符,返回第一次出现的位置,找不到则返回-1。
int ReverseFind(XCHAR ch) const throw();
从字符串末尾开始查找指定的字符ch,返回其位置,找不到则返回-1。这里要注意,尽管是从后向前查找,但是位置的索引还是要从开始算起。
6、CString类的格式化字符串方法
使用CString类的Format成员函数可以将int、short、long、float、double等数据类型格式化为字符串对象。
void __cdecl Format(PCXSTR pszFormat,[, argument]...);
7、CString类对象字符串的替换与删除
int Replace(PCXSTR pszOld,PCXSTR pszNew); 用字符串pszNew替换CString对象中的子字符串pszOld,返回替换的字符个数。
int Replace(XCHAR chOld,XCHAR chNew); 用字符chNew替换CString对象中的字符chOld,返回替换的字符个数。
int Delete(int iIndex,int nCount = 1); 从字符串中删除iIndex位置开始的nCount个字符,返回删除操作后的字符串的长度。
int Remove(XCHAR chRemove); 删除字符串中的所有由chRemove指定的字符,返回删除的字符个数。
8、判断CString是否为空 isEmpty()
1. CString类的构造函数
CString(const CString& stringSrc); 将一个已经存在的CString对象stringSrc的内容拷贝到该CString对象。例如:
CString str1(_T("oSaodiseng")); // 将常量字符串拷贝到str1 CString str2(str1); // 将str1的内容拷贝到str2
CString(LPCTSTR lpch, int nLength); 将字符串lpch中的前nLength个字符拷贝到该CString对象。例如:
CString str(_T("oSaodiseng"),4); // 构造的字符串对象内容为"oSao"
CString(TCHAR ch, int nLength = 1); 使用此函数构造的CString对象中将含有nLength个重复的ch字符。例如:
CString str(_T('o'),5); // str为"ooooo"
2. CString类的大小写转换及顺序转换函数
CString& MakeLower(); 将字符串中的所有大写字符转换为小写字符。
CString& MakeUpper(); 将字符串中的所有小写字符转换为大写字符。
CString& MakeReverse(); 将字符串中所有字符的顺序颠倒。
CString str(_T("oSaoDiSeng")); str.MakeLower(); // str为"osaodiseng" str.MakeUpper(); // str为"OSAODISENG" str.MakeReverse(); // str为"GNESIDOAS0"
3. CString对象的比较
CString对象的比较可以通过==、!=、<、>、<=、>=等重载运算符实现,也可以使用Compare和
CompareNoCase成员函数实现。
int Compare(PCXSTR psz) const; 将该CString对象与psz字符串比较,如果相等则返回0,如果小于psz则返回值小于0,如果大于psz则返回值大于0。
int CompareNoCase(PCXSTR psz) const throw(); 此函数与Compare功能类似,只是不区分大小写。
CString str1 = _T("oSaoDiSeng"); CString str2 = _T("osaodiseng"); if (0 == str1.CompareNoCase(str2)) { // 因为不区分大小写比较时,CompareNoCase函数返回0,所以执行下面的代码 ... } 或写成 if (!str1.CompareNoCase(str2)) { // 因为不区分大小写比较时,CompareNoCase函数返回0,所以执行下面的代码 ... }
4、CString对象字符串的提取操作
CString Left(int nCount) const; 提取该字符串左边nCount个字符的子字符串,并返回一个包含 这个子字符串的拷贝的CString对象。
CString Right(int nCount) const; 提取该字符串右边nCount个字符的子字符串,并返回一个包含 这个子字符串的拷贝的CString对象。
CString Mid(int iFirst,int nCount) const; 提取该字符串中以索引iFirst位置开始的nCount个字符组成的子字符串,并返回一个包含这个子字符串的拷贝的CString对象。
CString Mid(int iFirst) const; 提取该字符串中以索引iFirst位置开始直至字符串结尾的子字符 串,并返回一个包含这个子字符串的拷贝的CString对象。
5、CString对象字符串的查找操作
int Find(PCXSTR pszSub,int iStart=0) const throw( );
int Find(XCHAR ch,int iStart=0) const throw( );
在CString对象字符串的iStart索引位置开始,查找子字符串pszSub或字符ch第一次出现的位置,如果没有找到则返回-1。
int FindOneOf(PCXSTR pszCharSet) const throw( );
查找pszCharSet字符串中的任意字符,返回第一次出现的位置,找不到则返回-1。
int ReverseFind(XCHAR ch) const throw();
从字符串末尾开始查找指定的字符ch,返回其位置,找不到则返回-1。这里要注意,尽管是从后向前查找,但是位置的索引还是要从开始算起。
6、CString类的格式化字符串方法
使用CString类的Format成员函数可以将int、short、long、float、double等数据类型格式化为字符串对象。
void __cdecl Format(PCXSTR pszFormat,[, argument]...);
CString str; str.Format(_T("i = %d"), 11); // i = 11
7、CString类对象字符串的替换与删除
int Replace(PCXSTR pszOld,PCXSTR pszNew); 用字符串pszNew替换CString对象中的子字符串pszOld,返回替换的字符个数。
int Replace(XCHAR chOld,XCHAR chNew); 用字符chNew替换CString对象中的字符chOld,返回替换的字符个数。
int Delete(int iIndex,int nCount = 1); 从字符串中删除iIndex位置开始的nCount个字符,返回删除操作后的字符串的长度。
int Remove(XCHAR chRemove); 删除字符串中的所有由chRemove指定的字符,返回删除的字符个数。
8、判断CString是否为空 isEmpty()
相关文章推荐
- sp_send_dbmail 详解
- Apache模块开发中遇到的几个问题
- indexer和searchd的使用
- linux Nginx重启、启动、停止
- iOS开发之MD5封装及应用
- Eclipse用法和技巧十二:快速复制一行
- Longest Valid Parentheses
- weblogic11g 启动时提示输入密码的问题
- myeclipse jar包
- Android 使用Fragment,ViewPagerIndicator 开发APP项目的主框架
- iOS设置同一个Label的不同颜色的字体
- 为什么扁平化会持续发展下去
- find命令之xargs,exec
- 如何给父母设计一款手机
- 程序设计: 猫大叫一声,所有的老鼠都开始逃跑,主人被惊醒。
- 面试题41-2:和为s的连续正数序列
- 为什么赵薇炒股频成功?
- 单例模式
- android Graphics
- maven web项目,解决包依赖冲突