这篇文章主要介绍“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 = '