/** * 转载请注明出处, 由于个人技术能力有限, 英语水平欠缺,
* 有翻译不合适或错误的地方, 请纠正,
* 希望不要因为我的错误误导您, 希望您的智慧可以加入.
* @translator: selfimpr
* @mail: lgg860911@yahoo.com.cn
* @blog: http://blog.csdn.net/lgg201
*/ typedef struct { char *ptr; //字符串指针
int size; //当前字符串占用大小
int assize; //字符串对象当前分配的内存大小
} TCXSTR;
TCXSTR *tcxstrnew(void);
创建一个可扩充字符串.
函数首先分配一个TCXSTR结构的内存, 然后为其内部的ptr分配初始的TCXSTRUNIT(默认12)大小内存, 设置size为0, assize为TCXSTRUNIT, 将ptr[0]设置为\0(也就是设置为空字符串)
TCXSTR *tcxstrnew2(const char *str);
指定一个字符串作为初始值创建一个可扩充字符串对象
返回的可扩充字符串对象是按照str量身定做, 但是如果str长度加1小于TCXSRUNIT时, 该字符串的分配内存会是TCXSTRUNIT.
TCXSTR *tcxstrnew3(int asiz);
指定一个初始内存大小来创建一个可扩充字符串对象.
与tcxstrnew相似, 不过在为ptr分配内存时, 按照指定的asiz而不是TCXSTRUNIT
TCXSTR *tcxstrdup(const TCXSTR *xstr);
复制指定的可扩充字符串, 但是, 新的可扩充字符串中的asize是取xstr的size+1和TCXSTRUNIT两者的大值.
void tcxstrdel(TCXSTR *xstr);
释放指定的可扩充字符串对象.
void tcxstrcat(TCXSTR *xstr, const void *ptr, int size);
该函数用来连接字符串, 将ptr的size个字符连接到xstr字符串末尾
函数中首先计算新字符串的长度, 然后对xstr的asize进行扩充(每次2倍)知道其大小适合新字符串存储, 重新分配内存, 内存拷贝, 然后修改xstr的size, 为字符串追加字符串结束符.
void tcxstrcat2(TCXSTR *xstr, const char *str);
与tcxstrcat类似, 不过是将str全部连接到xstr上.
const void *tcxstrptr(const TCXSTR *xstr);
返回可变字符串中存储的字符串的值, 可以直接作为字符串使用.
int tcxstrsize(const TCXSTR *xstr);
返回当前该可扩充字符串对象中实际存储的字符串的大小
void tcxstrclear(TCXSTR *xstr);
将指定的可扩充字符串对象中已经存储的字符串设置为空字符串(直接将该指针指向\0), 并将xstr->size设置为0
char *tcxstrprintf(TCXSTR *xstr, const char*format, …);
格式化一个可扩充字符串对象
返回的指针可以用free释放.
发表评论
-
初见C#之欣喜 -- 有关正则和LINQ
2012-07-06 09:46 856这两天由于作业的原因用C#写了个小程序,苦恼于陌生的函数、 ... -
各种视图组件
2012-07-03 13:44 730TabHost包含: 布局器: 上边:一个TabW ... -
给FlexViewer加一个登录
2012-07-02 12:56 640打开index.mxml,修改如下: flex/sp ... -
[Bindable]元数据标签举例
2012-07-02 12:56 669【描述】 现在想从后台的数据库里读取一些Produc ... -
学习组件拖拽
2012-07-02 12:56 715height="323" ... -
Using the Adobe AIR 2 NativeProcess API to create a screen recorder
2012-07-02 12:56 1350With the release of AIR 2, Ad ... -
ExtJs 扩展 笔录1
2012-07-02 12:56 611Ext.layout.SlideLayout.js Ext ... -
整理电脑,整理大脑
2012-07-01 10:31 751电脑硬盘空间不足了,该怎么办呢? 增加硬盘空间,我真 ... -
Android 源码下载编译
2012-07-01 10:31 819很久以前写的,从那个博客搬过来的。 … 一、系 ... -
开发知识总结
2012-07-01 10:31 753总结一下自己在开发上的一些小心得,持续更新,欢迎大家补充! ... -
完整的Flex多文件上传实例
2012-07-01 10:31 436客户端代码:fileUpload.xml--------- ... -
像Youtube一样的flv视频网站制作 使用Flex和PHP创建自己的视频应用
2012-07-01 10:31 753转帖:http://blog.sina ... -
2011年11月01日
2012-06-30 16:52 9892011年11月01日 2011年11月 ... -
[转]Q版格斗游戏《口袋战士NOVA》开发心得[原创]
2012-06-30 16:52 892[转]Q版格斗游戏《口袋战士NOVA》开发心得[原创] 20 ... -
本创:如何才气建制出劣秀的Facebook游戏?
2012-06-30 16:52 811本创:如何才气建制出劣 ... -
中国网络游戏发展历史大全 .网络游戏
2012-06-30 16:52 686中国网络游戏发展历史大全 .网络游戏 2011年07月14日 ...
相关推荐
Tokyo-Cabinet.tar.gz
Tokyo cabinet C 库的Lua绑定接口。 Tokyo cabinet 是一个管理数据库的库。...二进制数据和字符串都可作为关键字或值。每个关键字必须唯一。没有数据表和数据类型的概念。记录以哈希表、b树和定长数据组织。
Tokyo cabinet C 库代码的Java绑定接口。 Tokyo cabinet 是一个管理数据库的库。...二进制数据和字符串都可作为关键字或值。每个关键字必须唯一。没有数据表和数据类型的概念。记录以哈希表、b树和定长数据组织。
尝试开发PHP的扩展,仅用于学习。目前仅能够在windows下编译通过。 Linux下的tokyo cabinet API与Windows与差别,写的时候是在windows下,准备在linux下编译时才发现tokyo cabinet API在Unix下与Windows下是不一样的
东京橱柜食谱 使用 Chef 安装东京橱柜。 支持的平台 支持以下平台: ...在节点的run_list包含tokyo-cabinet : { " run_list " : [ " recipe[tokyo-cabinet::default] " ] } 作者 作者:坂锐( )
Tokyo Cabinet Key-Value数据库及其扩展应用
tokyo cabinet tyrant研究资料
Tokyo Cabinet 是一个DBM的实现。这里的数据库由一系列key-value对的记录构成。key和value都可以是任意长度的字节序列,既可以是二进制也可以是字符串。这里没有数据类型和数据表的概念。 当做为Hash表数据库使用时,...
Tokyo cabinet C库的Perl绑定代码API。 Tokyo cabinet 是一个管理数据库的库。该数据库是一个单一的数据文件,每个记录为关键字和值。每个关键字和值是可变长度的字节序。二进制数据和字符串都可作为关键字或值。每...
2006-03-03 23:23 4,234 Cabinet.Lib 2006-03-03 23:23 2,146 Cap.Lib 2006-03-03 23:23 122,314 CiUuid.Lib 2006-03-03 23:23 26,302 ComCtl32.Lib 2006-03-03 23:23 7,220 ComDlg32.Lib 2006-03-03 23:23 538 ...
Tokyo cabinet C 库的 Ruby绑定代码API Tokyo cabinet 是一个管理数据库的库。该数据库是一个单一的数据文件,每个记录为关键字和值。每个关键字和值是可变长度的字节序。二进制数据和字符串都可作为关键字或值。每...
东京内阁是QDBM的后继者,QDBM是与DBM系列类似的高性能数据库库。 它还支持哈希和B树数据库,不需要任何服务器进程。 与QDBM相比,整体速度有所提高。
cabinet-api-client 该库提供对通用Cabinet API的访问。用法 var cabinetApi = require ( 'cabinet-api-client' ) ; var config = { apiUrl : 'http://localhost:8080/api' ,timeout : 60000 ,username : 'username'...
Laravel开发-cabinet Laravel 4文件上传包。
Microlog Cabinet Manager 2003 is a utility for opening and creating Microsoft CAB compressed files. CAB is a file compression format used by Microsoft to distribute many of their products, including ...
15.2.5 字符串表 469 15.3 安装程序setup.exe的编号 469 15.4 使用msi文件进行安装 472 15.4.1 Windows Installer Service 472 15.4.2 msi文件的创建与修改工具orca.exe 474 15.4.3 准备工作 475 15.4.4...
Laravel开发-ng-cabinet [拉拉基特]
哪吒(Nezha)是中国神话故事里的少年战神,我们以其作为基础Tokyo Cabinet的简单分布式KV存储系统原型项目的代号。 它包含configdb lib(configdb.h / libconfigdb.so)和一个命令行测试程序(Nezha) 执行make ...
ES47 2型可支持2个主频为1.OGHz的Alpha 21364(EV7)微处理器和容量高达146GB的内部热插硬盘((2个72.8GB的SCSI硬盘)。通过组合使用内部I/O插槽和1个外部I/O扩展抽屉它还可支持多达16个PCI/PCI-X I/O插槽和2个AGP 2X...