分享一个类似于MFC的字符串类

本文介绍了一个自定义的CptString类,用于替代MFC的CString类,提供了常用的接口,支持ANSI和Unicode,包含字符串操作如格式化、分割等,并提供了额外的内存管理特性,适用于特定项目的开发。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

这个类是我5年前封装的,因为一直以来只习惯用直接用API做开发,不习惯使用MFC,但它的CString确实好用,后来参考其接口自己实现了一个,所以用法与MFC的CString一样的。这个类已应用于我自己的项目中的,有以下几点需要注意的。

1. 只实现了常用的接口,比较偏的没有实现,没有 buffer 的接口诸如 GetBuffer(),ReleaseBuffer() 不可用。增加了 c_str() 用作返回字符串指针。

2. 因为开始的时候不考虑unicode,后来的使用中有这需求,所以有 CptStringA CptStringW 两个类,且代码类似,而不是使用模板处理。CptStringW 是后期追加的

3. 因为当时要赶工程,所以性能优化方面没有做到极致。 如果哪位兄弟优化后欢迎拿出来给大家分享

4. 内存管理方面支持使用 sgi 的 stl 分配器 把 USE_SGI_STL_MEMORY_FOR_PTSTRING 开关打开即可。 sgi 的代码可官网http://www.sgi.com/tech/stl/download.html处下载,或参考我以前的博文 http://blog.youkuaiyun.com/practise_think/article/details/4863553

5. 有两个类 CptStringA 和 CptStringW 分别对应 ansi和 unicode,所以目前还不支持 UTF8 的。 一般情况下可使用CptString 这个根据_UNICODE重定义的类

6. 增加了相应的 CptStringListA/W ,主要是用于字符串集。

用法:
CptString str ;

str.Format(_T("%d"),123) ;

CptStringList sl ;

sl.Spilt(_T("par1,par2,par3"),_T(",")) ;
count << sl[0].c_str() << endl ;

代码下载:http://www.codepads.com/download/source-code/CptString.zip



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值