这个类是我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 ;
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