cstring 正在参加 2020 年度 OSC 中国开源项目评选,请投票支持!
cstring 在 2020 年度 OSC 中国开源项目评选 中已获得 {{ projectVoteCount }} 票,请投票支持!
投票让它出道
已投票
授权协议 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......

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替换成#...

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 *);...

0
0
发表了博客
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() 给定一字...

0
0
发表了博客
2014/03/14 09:29

关于Cstring 总结

前言:串操作是编程中最常用也最基本的操作之一. 做为VC程序员,无论是菜鸟或高手都曾用过CString.而且好像实际编程中很难离得开它(虽然它不是标准C++中的库).因为MFC中提供的这个类对 我们操作字串实在太方便了,CString不仅提供各种丰富的操作函数、操作符重载,使我们使用起串起来更象basic中那样直观;而且它还提供了...

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::Co...

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

总结CString、string、char*

(一)首先说说string和char*: ----------------- 1、概述 ---- 在C语言中: string是字符串,而char*是字符指针。二者不是在什么时候都等价,当字符指针指向的地址保存了一个字符串(即以‘\0’结尾的一个字符序列)时,可以说它指向了一个字符串,其它情况下则不等价。 在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* 是指向A...

0
3
发表了博客
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
07/07 07:51

CString 类的线程不安全问题

1 问题描述 CString 类线程不安全问题和解决过程,测试运行一段时间后,后台软件崩了,软件重启后,恢复正常,隔三四小时又出现异常,Debug模式下调用堆栈,发现问题出现在strname = pSystemInfo-> szName 这一行...

0
0
没有更多内容
加载失败,请刷新页面
点击加载更多
加载中
下一页
暂无内容
0 评论
29 收藏
分享
返回顶部
顶部