这篇文章主要介绍“C语言怎么实现动态扩容的string”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“C语言怎么实现动态扩容的string”文章能帮助大家解决问题。
一个好的string应该有以下功能?
创建字符串
删除字符串
尾部追加字符串
头部插入字符串
从尾部删除N个字符
从头部删除N个字符
裁剪字符串
获取字符串长度
获取完整字符串
下面,我们来看看各个功能的实现。
首先定义一个string的句柄,相当于C++中的实例。
struct c_string;
typedef struct c_string c_string_t;
在内部string的实现如下:
// string的初始内存大小
static const size_t c_string_min_size = 32;
struct c_string {
char *str; // 字符串指针
size_t alloced; // 已分配的内存大小
size_t len; // 字符串的实际长度
};
创建字符串:
c_string_t *c_string_create(void) {
c_string_t *cs;
cs = calloc(1, sizeof(*cs));
cs->str = malloc(c_string_min_size);
*cs->str = '
版权声明:除特别声明外,本站所有文章皆是本站原创,转载请以超链接形式注明出处!