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

Practise_Think Practise_Think 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
这个类是我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.csdn.net/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 ;

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

做软件开发这么久了,除了思想和代码外什么也没剩下的了。如果有空将继续分享我自己实现的并已在我项目里应用的通用类给大家。

另外,也随带宣传一下我的求职贴: http://topic.csdn.net/u/20110914/01/4b9ce82e-1dca-4442-b10c-8f59e6dba54a.html?15340

最近心情有点沮丧,准备到外面走走散一下心
...全文

相关推荐

评论 13
收藏 已收藏
分享
返回顶部
Practise_Think
VC/MFC 16,550 成员 421,606 内容