`
huobengle
  • 浏览: 862425 次
文章分类
社区版块
存档分类
最新评论

4.CString常用操作

 
阅读更多

①、CString 类对象的初始化:


②、字符串基本操作:


③、字符串的查找:
Find、ReverseFind、FindOneOf 三个函数可以实现字符串的查找操作
Find 从指定位置开始查找指定的字符或者字符串,返回其位置,找不到返回 -1;
举例:
CString str(_T("abcdefg"));
int idx = str.Find(_T("cde"), 0); //idx 的值为2;

ReverseFind 从字符串末尾开始查找指定的字符(不支持字符串),返回其位置,找不到返回 -1,虽然是从后向前查找,但是位置为从开始算起;
CString str(_T("abcdefg"));
int idx = str.ReverseFind('e'); //idx 的值为4;

FindOneOf 查找参数中给定字符串中的任意字符,返回第一次出现的位置,找不到返回 -1;
CString str(_T("abcabcd"));
int idx = str.FindOneOf(_T("cbd")); //idx 的值为1;

④、字符串的替换与删除:
Replace 替换 CString 对象中的指定的字符或者字符串,返回替换的个数,无匹配字符返回 0;
CString str(_T("abcdabc"));
int num = str.Replace('b', 'k'); //str == akcdakc, num == 2

CString str(_T("abcdabc"));
int num = str.Replace(_T("bc"), _T("kw")); //str == akwdakw, num == 2

Remove 删除 CString 对象中的指定字符,返回删除字符的个数,有多个时都会删除;
CString str(_T("abcdabcb"));
int num = str.Remove('b'); //str == acdac, num == 3

Delete 删除 CString 对象中的指定位置的字符,返回处理后的字符串长度;
CString str(_T("abcd"));
int num = str.Delete(1, 3); //str == a, num == 1

⑤、字符串的提取:
Left、Mid、Right 三个函数分别实现从 CString 对象的 左、中、右 进行字符串的提取操作;
CString str(_T("abcd"));
CString strResult = str.Left(2); //strResult == ab
strResult = str.Mid(1); //strResult == bcd
strResult = str.Mid(0, 2); //strResult == ab
strResult = str.Right(2); //strResult == cd

⑥、单个字符的修改:
GetAt、SetAt 可以获取与修改 CString 对象中的单个 TCHAR 类型字符;
[] 操作符也可以获取 CString 对象中的单个字符,但为只读的,不能进行修改;
CString str(_T("abcd"));
str.SetAt(0, 'k'); //str == kbck
TCHAR ch = str.GetAt(2); //ch == c

⑦、其他类型与 CString 对象类型的转换:
● 格式化字符串:Format 方法,实现从 int、long 等数值类型、TCHAR、TCHAR * 等类型向 CString 类型的转换;
int num = 6;
CString str;
str.Format(_T("%d"), num);

● CString 类型向 int 等数值类型、TCHAR * 类型的转换:
TCHAR *pszBuf = str.GetBuffer();
str.ReleaseBuffer();

TCHAR *p = (LPTSTR)(LPCTSTR)str;

CString str1(_T("123"));
int num = _ttoi(str1);

⑧、CString 对象的 Ansi 与 Unicode 转换:
大家可以直接使用上节课给大家讲解的方法,此外这里给大家介绍一种从 Ansi 转换到 Unicode 的隐含方法:
//当前工程环境为Unicode
CString str;
str = "abc";

char *p = "defg";
str = p;

宽字节转化为窄字节也可以
//当前工程环境为Ansi
CString str;
str = L"abc";

wchar_t *p = L"defg";
str = p;


⑨、※※※ CString 对象字符串所占用的字节数:
CString str = _T("abc");
错误的求法:sizeof(CString)、sizeof(str)
正确的求法:str.GetLength()*sizeof(TCHAR)

⑩、※※※ 当作为 TCHAR * 类型传参时,确保申请了足够用的空间,比如使用 GetModuleFileName 函数;

CString str;
GetModuleFileName(NULL, str.GetBufferSetLength(MAX_PATH), MAX_PATH);
str.ReleaseBuffer();
MessageBox(str);

分享到:
评论

相关推荐

    CString常用方法简介

    包含所有CString的操作,内容详尽,例题合理,讲解独到,让你轻松掌握CString!

    CString 操作指南

    CString常用操作以及使用过程中的注意事项,很有用

    CString类的使用

    CString类的函数及具体使用,String类作为MFC的常用类,当之无愧。可以这样说,只要是从事MFC开发,基本都会遇到使用CString类的场合。因为字符串的使用比较普遍,而CString类又提供了对字符串的便捷操作,所以它给...

    VC CString最全面的总结 常用数据类型使用转换详解等总结

    串操作是编程中最常用也最基本的操作之一. 8 打开对话框选择多个文件 11 用VC设计托盘图标程序 12 一、NOTIFYICONDATA结构 12 二、Shell_NotifyIcon函数 13 三、托盘图标程序设计示例 13 VC常用数据类型使用转换详解...

    CString,string,char*之间的转换

    这三种类型各有各的优点,比如CString比较灵活,是基于MFC常用的类型,安全性也最高,但可移植性最差。string是使用STL时必不可少的类型,所以是做工程时必须熟练掌握的;char*是从学习C语言开始就已经和我们...

    WHC第三方控件

    4. 常用的目录操作辅助类(DirectoryUtil.cs) 5. Excel操作辅助类(无需VBA引用)(ExcelHelper.cs) 6. 利用VBA对象,导出DataView到一个Excel文档中的Excel辅助类(Export2Excel.cs) 7. 关联文件...

    DotNet公用类(超多附文档)

    4.常用的目录操作辅助类(DirectoryUtil.cs) 5.Excel操作辅助类(无需VBA引用)(ExcelHelper.cs) 6.利用VBA对象,导出DataView到一个Excel文档中的Excel辅助类(Export2Excel.cs) 7.关联文件(ExtensionAttachUtil....

    aspnet公共类cs文件.rar

    常用的Access数据库Sql操作辅助类库(OleDbHelper.cs4.根据各种不同数据库生成不同【分页语句的辅助类】 PagerHelper(PageHelper.cs)5.查询条件组合辅助类(SearchCondition.cs)6.查询信息实体类(SearchInfo.cs)7....

    MFC基础demo加Cedit常用操作

    MFC基础demo加Cedit常用操作,包括CString,Cedit,类向导,变量的使用等。对应博客教学地址https://blog.csdn.net/qq_20330595/article/details/82454695

    Visual_C++精彩实例详解.part4.rar

    为了方便的操作ADO,这里提供4个类:CADODatabase,CADORecordset,CADOParameter,CADOCommand ,下面对类的成员作一介绍。 B.1 CADODatabase类函数介绍 CADODatabase类包含关于_ConnectionPtr的函数集合。 // 打开...

    MFC文件操作

    各种关于文件的操作在程序设计中是十分常见,如果能对其各种操作都了如指掌,就可以根据实际情况找到最佳的解决方案,从而在较短的时间内编写出高效的代码,因而熟练的掌握文件操作是十分重要的。本文将对Visual C++...

    数据库系统原理-书店信息管理系统.doc

    #include<sqlext.h> #include<Sqltypes.h> #define COURSE_NO1 5 //注意定义的大小应为数据库中定义的长度加一,CString的结束字符也算在内 #define LEN 10/////////////////变量的长度,一般属性列的长度定义都为 #...

    MFC常用的类及其成员函数简介

    如果在消息处理中需要文档的数据,应该调用该类的成员函数GetDocument来获取文档对象,然后通过文档对象的接口函数对文档中的数据进行操作. (4) 在CViwe类的派生类中的OnDraw函数中编写窗口重绘时的代码. Gilbert觉得...

    VC字符串处理

    VC CString的常用操作,包括查找,插入,格式化,截取字串等,适合新手入门参考。

    常用MFC和API函数

    常用MFC和API函数 索引 CArchive类:用于二进制保存档案 CBitmap类:封装Windows的图形设备接口(GDI)位图 CBrush类:封装图形设备接口(GDI)中的画刷 CButton类:提供Windows按钮控件的功能 CByteArray类:该类...

    常用字符串文件文件夹操作

    常见的MFC中的字符串文件文件夹操作,整理了一下,添加到工程中可以直接使用。

    字符串操作总结

    这个是一些c++字符串,CString的常用函数总结。

    VC数据类型详解,解说详细

    2.2 CString及string,char *与其他数据类型的转换和操作 ●CString,string,char*的综合比较 ●数学类型与CString相互转化 ●CString与char*相互转换举例 ●CString 与 BSTR 型转换 ●VARIANT 型转化成 CString 型 ...

    Visual_C++精彩实例详解.part2.rar

    为了方便的操作ADO,这里提供4个类:CADODatabase,CADORecordset,CADOParameter,CADOCommand ,下面对类的成员作一介绍。 B.1 CADODatabase类函数介绍 CADODatabase类包含关于_ConnectionPtr的函数集合。 // 打开...

    Visual_C++精彩实例详解.part5.rar

    为了方便的操作ADO,这里提供4个类:CADODatabase,CADORecordset,CADOParameter,CADOCommand ,下面对类的成员作一介绍。 B.1 CADODatabase类函数介绍 CADODatabase类包含关于_ConnectionPtr的函数集合。 // 打开...

Global site tag (gtag.js) - Google Analytics