字符串 更多...
结构体 | |
struct | tagMStringMatchResult |
字符串匹配信息 更多... | |
struct | tagMString |
字符串 更多... | |
struct | tagMStringIter |
字符串迭代器 更多... | |
宏定义 | |
#define | MSTR_STACK_REGION_SIZE 16 |
栈上分配的空间大小 | |
#define | mstr_init(pstr) |
初始化一个空的字符串 | |
#define | mstr_create_empty(s) mstr_create(s, "") |
创建空的总付出 | |
#define | mstr_iter_move_next(it) |
移动到下一个位置 | |
#define | mstr_iter_is_end(it) ((it).it == (it).it_end) |
判断迭代器是否已到末尾 | |
类型定义 | |
typedef enum tagMStringReplaceOption | MStringReplaceOption |
字符串替换选项 | |
typedef struct tagMStringMatchResult | MStringMatchResult |
字符串匹配信息 | |
typedef struct tagMString | MString |
字符串 | |
typedef struct tagMStringIter | MStringIter |
字符串迭代器 | |
枚举 | |
enum | tagMStringReplaceOption { MStringReplaceOption_StartWith , MStringReplaceOption_EndWith , MStringReplaceOption_All } |
字符串替换选项 更多... | |
函数 | |
mstr_create (MString *str, const char *content) | |
创建字符串 | |
mstr_move_from (MString *str, MString *other) | |
从other移动字符串到str | |
mstr_copy_from (MString *str, const MString *other) | |
从other复制字符串到str | |
mstr_reserve (MString *str, usize_t new_size) | |
保留 sz 个char数的内存区 | |
mstr_concat (MString *str, const MString *other) | |
拼接字符串 | |
mstr_concat_cstr (MString *str, const char *other) | |
拼接字符串(cstr) | |
mstr_concat_cstr_slice (MString *str, const char *start, const char *end) | |
拼接字符串(cstr slice) | |
mstr_append (MString *str, mstr_codepoint_t ch) | |
向字符串尾部插入一个字符 | |
mstr_repeat_append (MString *str, mstr_codepoint_t ch, usize_t cnt) | |
向字符串尾部重复插入一个字符 | |
MSTR_EXPORT_API (void) mstr_clear(MString *str) | |
清空字符串 | |
MSTR_EXPORT_API (const char *) mstr_c_str(MString *str) | |
转换为cstr | |
mstr_equal (const MString *a, const MString *b) | |
判断两个字符串是否相等 | |
mstr_equal_cstr (const MString *a, const mstr_char_t *b, usize_t b_cnt) | |
判断两个字符串是否相等(cstr) | |
mstr_start_with (const MString *str, const char *prefix, usize_t prefix_cnt) | |
判断字符串是否以某个字串开始 | |
mstr_end_with (const MString *str, const char *suffix, usize_t suffix_cnt) | |
判断字符串是否以某个字串结束 | |
mstr_contains (const MString *str, const char *pattern, usize_t pattern_cnt) | |
判断字符串是否含有pattern | |
mstr_char_at (const MString *str, usize_t idx) | |
取得第idx位置的字符ch | |
mstr_remove (MString *str, mstr_codepoint_t *removed_ch, usize_t idx) | |
从字符串中移除idx位置的字符 | |
mstr_insert (MString *str, usize_t idx, mstr_codepoint_t ch) | |
从字符串中idx位置插入一个字符 | |
mstr_find (const MString *str, MStringMatchResult *f_res, usize_t begin_pos, const char *pattern, usize_t pattern_cnt) | |
查找子串第一次出现的位置 | |
mstr_retain (MString *str, MStringReplaceOption opt, const char *pattern, usize_t pattern_cnt) | |
从字符串中移除所有匹配substr的字符 | |
mstr_replace (MString *str, MStringReplaceOption opt, const char *pattern, usize_t pattern_cnt, const char *replace_to, usize_t replace_to_cnt) | |
进行字符串替换(单个目标) | |
MSTR_EXPORT_API (usize_t) mstr_char_length(char lead) | |
判断前导字符lead后面的字符长度, 前导字符包括在内 | |
mstr_lead_char_offset (const mstr_char_t *buff, usize_t hist_len) | |
判断buff的lead字符偏移量(相反数, 比如偏移量是-2但是会返回2) | |
mstr_as_utf8 (mstr_codepoint_t code, mstr_char_t *result, usize_t *result_len) | |
转换为UTF-8, 如果未启用UTF-8, 该函数返回未实现错误 | |
mstr_codepoint_of (mstr_codepoint_t *code, const mstr_char_t *ch, usize_t byte_count) | |
取得lead字符ch[0]所跟着的内容的unicode代码点值 如果未启用UTF-8, 该函数返回未实现错误 | |
mstr_char_offset_at (const MString *str, usize_t idx) | |
找到第idx个字符的offset | |
变量 | |
const MString * | str |
字符串
#define mstr_create_empty | ( | s | ) | mstr_create(s, "") |
创建空的总付出
#define mstr_init | ( | pstr | ) |
初始化一个空的字符串
[in,out] | pstr | 字符串 |
#define mstr_iter_is_end | ( | it | ) | ((it).it == (it).it_end) |
判断迭代器是否已到末尾
#define mstr_iter_move_next | ( | it | ) |
#define MSTR_STACK_REGION_SIZE 16 |
栈上分配的空间大小
typedef struct tagMString MString |
字符串
typedef struct tagMStringIter MStringIter |
字符串迭代器
typedef struct tagMStringMatchResult MStringMatchResult |
字符串匹配信息
typedef enum tagMStringReplaceOption MStringReplaceOption |
字符串替换选项
mstr_append | ( | MString * | str, |
mstr_codepoint_t | ch | ||
) |
向字符串尾部插入一个字符
[in,out] | str | 字符串 |
[in] | ch | 需要放入的字符(unicode point) |
mstr_as_utf8 | ( | mstr_codepoint_t | code, |
mstr_char_t * | result, | ||
usize_t * | result_len | ||
) |
转换为UTF-8, 如果未启用UTF-8, 该函数返回未实现错误
code | 字符代码点 |
result | 转换输出, 至少要有6个bytes |
result_len | 转换输出的有效长度 |
取得第idx位置的字符ch
找到第idx个字符的offset
[in] | str | 字符串 |
[in] | idx | 字符索引 |
mstr_codepoint_of | ( | mstr_codepoint_t * | code, |
const mstr_char_t * | ch, | ||
usize_t | byte_count | ||
) |
取得lead字符ch[0]所跟着的内容的unicode代码点值 如果未启用UTF-8, 该函数返回未实现错误
[out] | code | 解码结果 |
[in] | ch | 字符串 |
[in] | byte_count | 字符的字节数 |
拼接字符串
[out] | str | 目标字符串 |
[in] | other | 需要拼接的源字符串 |
mstr_concat_cstr | ( | MString * | str, |
const char * | other | ||
) |
拼接字符串(cstr)
[out] | str | 目标字符串 |
[in] | other | 需要拼接的源字符串 |
mstr_concat_cstr_slice | ( | MString * | str, |
const char * | start, | ||
const char * | end | ||
) |
拼接字符串(cstr slice)
[out] | str | 目标字符串 |
[in] | start | 需要拼接的源字符串起始 |
[in] | end | 需要拼接的源字符串结束 |
判断字符串是否含有pattern
[in] | str | 字符串 |
[in] | pattern | 需要包含的内容 |
[in] | pattern_cnt | 需要包含的内容的字符数 |
从other复制字符串到str
[out] | str | 目标字符串 |
[in] | other | 需要移动的字符串 |
mstr_create | ( | MString * | str, |
const char * | content | ||
) |
创建字符串
[out] | str | 需要创建的字符串结构 |
[in] | content | 需要丢到字符串里面的内容 |
判断字符串是否以某个字串结束
[in] | str | 字符串 |
[in] | suffix | 需要确认其结束的内容 |
[in] | suffix_cnt | suffix的char字符数 |
判断两个字符串是否相等
[in] | a | 字符串a |
[in] | b | 字符串b |
mstr_equal_cstr | ( | const MString * | a, |
const mstr_char_t * | b, | ||
usize_t | b_cnt | ||
) |
判断两个字符串是否相等(cstr)
[in] | a | 字符串a |
[in] | b | 字符串b |
[in] | b_cnt | 字符串b的字符数 |
MSTR_EXPORT_API | ( | const char * | ) |
转换为cstr
str | 字符串 |
MSTR_EXPORT_API | ( | usize_t | ) |
判断前导字符lead后面的字符长度, 前导字符包括在内
判断前导字符lead后面的字符长度, 前导字符包括在内
取得当前的空闲内存大小
判断前导字符lead后面的字符长度, 前导字符包括在内
取得自运行以来空闲内存最小的值
取得当前的空闲内存大小
MSTR_EXPORT_API | ( | void | ) |
清空字符串
释放由 mstr_heap_allocate 分配的内存
释放一个字符串所占的内存
取得迭代器
翻转字符串, 不做任何其它处理
翻转字符串
[in,out] | str | 需要清空的字符串 |
[in,out] | str | 需要翻转的字符串 |
[in,out] | str | 需要翻转的字符串 |
[out] | it | 迭代器输出 |
[in] | str | 原字符串 |
str | 字符串结构 |
mstr_find | ( | const MString * | str, |
MStringMatchResult * | f_res, | ||
usize_t | begin_pos, | ||
const char * | pattern, | ||
usize_t | pattern_cnt | ||
) |
查找子串第一次出现的位置
[in] | str | 字符串a |
[out] | f_res | 查找结果 |
[in] | begin_pos | 开始查找的位置 |
[in] | pattern | 需要查找的子串 |
[in] | pattern_cnt | pattern的char个数 |
mstr_insert | ( | MString * | str, |
usize_t | idx, | ||
mstr_codepoint_t | ch | ||
) |
从字符串中idx位置插入一个字符
[in,out] | str | 字符串 |
[in] | idx | 需要插入的字符位置 |
[in] | ch | 需要插入的字符 |
mstr_lead_char_offset | ( | const mstr_char_t * | buff, |
usize_t | hist_len | ||
) |
判断buff的lead字符偏移量(相反数, 比如偏移量是-2但是会返回2)
[in] | buff | 字符数组 |
[in] | hist_len | 字符数组允许往前查找的长度, 大于等于0 (不然就返回0啦), 如果大于6, 那么最大会被限制到6(1个utf-8编码的长度) |
从other移动字符串到str
[out] | str | 目标字符串 |
[in,out] | other | 需要移动的字符串 |
mstr_remove | ( | MString * | str, |
mstr_codepoint_t * | removed_ch, | ||
usize_t | idx | ||
) |
从字符串中移除idx位置的字符
[in,out] | str | 字符串 |
[out] | remoed_ch | 被移除的字符, 可以为NULL |
[in] | idx | 需要移除的字符位置 |
mstr_repeat_append | ( | MString * | str, |
mstr_codepoint_t | ch, | ||
usize_t | cnt | ||
) |
向字符串尾部重复插入一个字符
[in,out] | str | 字符串 |
[in] | ch | 需要放入的字符(unicode point) |
[in] | cnt | 重复次数 |
mstr_replace | ( | MString * | str, |
MStringReplaceOption | opt, | ||
const char * | pattern, | ||
usize_t | pattern_cnt, | ||
const char * | replace_to, | ||
usize_t | replace_to_cnt | ||
) |
进行字符串替换(单个目标)
[in,out] | str | 字符串 |
[in] | opt | 替换模式 |
[in] | pattern | 需要替换的子串模式 |
[in] | pattern_cnt | 模式串的字符计数 |
[in] | replace_to | 需要替换为的结果 |
[in] | replace_to_cnt_cnt | 结果的字符计数 |
保留 sz 个char数的内存区
[in,out] | str | 字符串 |
[in] | new_size | 需要保留的大小 |
mstr_retain | ( | MString * | str, |
MStringReplaceOption | opt, | ||
const char * | pattern, | ||
usize_t | pattern_cnt | ||
) |
从字符串中移除所有匹配substr的字符
[in,out] | str | 字符串 |
[in] | opt | 替换模式 |
[in] | pattern | 需要移除的pattern |
[in] | pattern_cnt | 需要移除的pattern的字符计数 |
判断字符串是否以某个字串开始
[in] | str | 字符串 |
[in] | prefix | 需要确认其开始的内容 |
[in] | prefix_cnt | prefix的char字符数 |
const MString* str |