cstring 正在参加 2020 年度 OSC 中国开源项目评选,请投票支持!
cstring 在 2020 年度 OSC 中国开源项目评选 中已获得 {{ projectVoteCount }} 票,请投票支持!
投票让它出道
已投票
cstring 获得 2020 年度 OSC 中国开源项目评选「最佳人气项目」 !
cstring 获得 2020 年度 OSC 中国开源项目评选「最佳人气项目」「最积极运营项目」 !
cstring 获得 2020 年度 OSC 中国开源项目评选「最积极运营项目」 !
授权协议 MIT
开发语言 C/C++
操作系统 跨平台
软件类型 开源软件
所属分类 程序开发常用工具包
开源组织
地区 不详
投 递 者 红薯
适用人群 未知
收录时间 2012-02-28

软件简介

cstring 是一个简单的 string 库,它主要解决以下几个问题:

  • 对于短字符串(小于32字节),进行string interning。这可以在文本处理时节省足够的内存。短字符串相当于symbol类型,对它做比较操作的代价可以减少到O(1)。
  • 对于临时字符串,如果长度不大(小于128字节),应放在堆栈上,避免动态内存分配。
  • 支持常量字符串,对于常量短字符串只做一次string interning操作。
  • 使用引用计数管理相同的字符串,减少字符串的副本。
  • 短字符串,常量字符串,以及引用次数非常多(大于64K次)的字符串可以不动态释放,简化生命期管理。
  • 惰性计算,以及缓存字符串的hash值,以方便实现hashmap。
  • 这个库是线程安全的。
展开阅读全文

代码

的 Gitee 指数为
超过 的项目

评论 (0)

加载中
更多评论
暂无内容
发表了博客
2019/07/05 19:24

CString and char *

1、多字符集设置下: CString To char*: 1)、 CString str; char *buf = str.GetBuffer(); 2)、 CString str; char *buf = (LPSTR)(LPCSTR)str; char* To CString 1)、 char *buf; CString str(buf); 2、Unicode字符集下: CString To char*: 1)、 CString st =_T("123"); int len =WideCharToMultiByte(CP_ACP,0,str,-1,NULL,0,NULL,NULL); char *buf =new char[len +1]; WideCharToMultiByte(CP_ACP,0,str,-1,buf,len,NULL,N...

0
0
发表了博客
2016/11/14 16:29

CString的一些方法

CString a,b; a = "123456789"; b = a.Left(4); //值为:1234 b = a.Mid(3); //值为:456789 b = a.Mid(2, 4); //值为:3456 b = a.Right(4); //值为:6789 a.Trim();//去掉俩侧空格 a.TrimLeft(12);//去掉左边指定字符,值为:3456789 a.TrimRight(89);//去掉右边 指定字符,值为:1234567 a.Replace(3,#);//替换,把3替换成#,值为12#456789 ReverseFind查找位置...

1
0
发表了博客
2014/09/16 23:08

char * , string, CString

CString头文件#include <afx.h> string头文件#include <string.h> 1、CString转char * CString cstr; char *p =(LPSTR)(LPCTSTR)cstr; 2、string转 CString CString.format(”%s”, string.c_str()); 用c_str()确实比data()要好. 3、char转 CString CString.format(”%s”, char*); 4、char转 string string s(char *); 只能初始化,在不是初始化的地方最好还是用assign(). 5、string转 char * char *p = string.c_str(); 6、C...

0
0
发表了博客
2020/01/02 13:53

CString之Find()、FindOneOf()、ReverseFind()

一、CString之Find()、FindOneOf()、ReverseFind() 此三个函数返回值均为整数int。 1、Find() 该函数从左侧0索引开始,查找第一个出现的字符位置,返回position。示例如下: 1 CString s( "abcd" ); 2 ASSERT( s.Find( 'b' ) == 1 ); 返回值: 如果查到,返回以0索引起始的位置 未查到,返回-1 2、FindOneOf() 给定一字符串,然后查找其中出现的第一个字符位置,示例如下: 1 CString s( "abcdef" ); 2 ASSERT( s.FindOneOf( ...

0
0
发表了博客
2012/09/05 20:32

CString常用方法简介

http://blog.csdn.net/lijuwen/article/details/623186 CString::Compare int Compare( LPCTSTR lpsz ) const; 返回值 字符串一样 返回0 小于lpsz 返回-1 大于lpsz 返回1 区分大小字符 CString s1( "abc" ); CString s2( "abd" ); ASSERT( s1.Compare( s2 ) == -1 ); ASSERT( s1.Compare( "abe" ) == -1 ); CString::CompareNoCase int CompareNoCase( LPCTSTR lpsz ) const; 返回值 字符串一样 返回0 小于lpsz 返回-1 大于lps...

0
0
发表了博客
2013/09/18 09:26

总结CString、string、char*

(一)首先说说string和char*: ----------------- 1、概述 ---- 在C语言中: string是字符串,而char*是字符指针。二者不是在什么时候都等价,当字符指针指向的地址保存了一个字符串(即以‘\0’结尾的一个字符序列)时,可以说它指向了一个字符串,其它情况下则不等价。 在C++中: string是一个字符容器,它是模板库里的一个扩展模板类,而char*是一个基本数据类型(C++的内置类型),二者就更不等价了。其中string有构造函数,...

0
0
发表了博客
2010/08/27 09:56

CString, BSTR, LPCTSTR 概念

CString是一个动态TCHAR数组, BSTR是一种专有格式的字符串(需要用系统提供的函数来操纵 ) LPCTSTR只是一个常量的TCHAR指针。 CString 是一个完全独立的类,动态的TCHAR数组,封装了+等操作符和字符串操作方法。 typedef OLECHAR FAR* BSTR; typedef const char * LPCTSTR; vc++中各种字符串的表示法 首先char* 是指向ANSI字符数组的指针,其中每个字符占据8位(有效数据是除掉最高位的其他7位),这里保持了与传统的C,C++的兼容...

0
3
发表了博客
2015/04/14 08:29

CString, string的相互转换

CString -> string CString strTemp; std::string strOut; strOut = strTemp.GetBuffer(0); string -> CString CString strTemp; std::string strSrc; strTemp = strSrc.c_str();

0
0
发表了博客
2016/03/11 13:46

std::string 和 CString问题

std::string stdTemp; CString strTemp; strTemp = stdTemp; ;//这一步直接赋值可不可以 因为CString可以接受const char*的赋值,而且std::string有个返回const char*的方法,c_str(),所以,应该这样写: strTemp = stdTemp.c_str();

0
0
没有更多内容
加载失败,请刷新页面
点击加载更多
加载中
下一页
暂无内容
0 评论
29 收藏
分享
OSCHINA
登录后可查看更多优质内容
返回顶部
顶部