str_t

概述

可变长度的UTF8字符串。

示例:

  1. str_t s;
  2. str_init(&s, 0);
  3. str_append(&s, "abc");
  4. str_append(&s, "123");
  5. str_reset(&s);

先调str_init进行初始化,最后调用str_reset释放内存。


函数

函数名称 说明
str_append 追加字符串。
str_append_char 追加一个字符。
str_append_with_len 追加字符串。
str_clear 清除字符串内容。
str_decode_xml_entity 对XML基本的entity进行解码,目前仅支持<>"a;&。
str_decode_xml_entity_with_len 对XML基本的entity进行解码,目前仅支持<>"a;&。
str_end_with 判断字符串是否以指定的子串结尾。
str_eq 判断两个字符串是否相等。
str_expand_vars 将字符串中的变量展开为obj中对应的属性值。
str_extend 扩展字符串到指定的容量。
str_from_float 用浮点数初始化字符串。
str_from_int 用整数初始化字符串。
str_from_value 用value初始化字符串。
str_from_wstr 用value初始化字符串。
str_init 初始化字符串对象。
str_insert 插入子字符串。
str_insert_with_len 插入子字符串。
str_remove 删除子字符串。
str_replace 字符串替换。
str_reset 重置字符串为空。
str_set 设置字符串。
str_set_with_len 设置字符串。
str_start_with 判断字符串是否以指定的子串开头。
str_to_float 将字符串转成浮点数。
str_to_int 将字符串转成整数。
str_to_lower 将字符串转成小写。
str_to_upper 将字符串转成大写。
str_trim 去除首尾指定的字符。
str_trim_left 去除首部指定的字符。
str_trim_right 去除尾部指定的字符。
str_unescape 对字符串进行反转义。如:把”\n”转换成’\n’。

属性

属性名称 类型 说明
capacity uint32_t 容量。
size uint32_t 长度。
str char* 字符串。

str_append 函数


  • 函数功能:

追加字符串。

  • 函数原型:
  1. ret_t str_append (str_t* str, char* text);
  • 参数说明:
参数 类型 说明
返回值 ret_t 返回RET_OK表示成功,否则表示失败。
str str_t* str对象。
text char* 要追加的字符串。

str_append_char 函数


  • 函数功能:

追加一个字符。

  • 函数原型:
  1. ret_t str_append_char (str_t* str, char c);
  • 参数说明:
参数 类型 说明
返回值 ret_t 返回RET_OK表示成功,否则表示失败。
str str_t* str对象。
c char 要追加的字符。

str_append_with_len 函数


  • 函数功能:

追加字符串。

  • 函数原型:
  1. ret_t str_append_with_len (str_t* str, char* text, uint32_t len);
  • 参数说明:
参数 类型 说明
返回值 ret_t 返回RET_OK表示成功,否则表示失败。
str str_t* str对象。
text char* 要追加的字符串。
len uint32_t 字符串长度。

str_clear 函数


  • 函数功能:

清除字符串内容。

  • 函数原型:
  1. ret_t str_clear (str_t* str);
  • 参数说明:
参数 类型 说明
返回值 ret_t 返回RET_OK表示成功,否则表示失败。
str str_t* str对象。

str_decode_xml_entity 函数


  • 函数功能:

对XML基本的entity进行解码,目前仅支持<>"a;&。

  • 函数原型:
  1. ret_t str_decode_xml_entity (str_t* str, char* text);
  • 参数说明:
参数 类型 说明
返回值 ret_t 返回RET_OK表示成功,否则表示失败。
str str_t* str对象。
text char* 要解码的XML文本。

str_decode_xml_entity_with_len 函数


  • 函数功能:

对XML基本的entity进行解码,目前仅支持<>"a;&。

  • 函数原型:
  1. ret_t str_decode_xml_entity_with_len (str_t* str, char* text, uint32_t len);
  • 参数说明:
参数 类型 说明
返回值 ret_t 返回RET_OK表示成功,否则表示失败。
str str_t* str对象。
text char* 要解码的XML文本。
len uint32_t 字符串长度。

str_end_with 函数


  • 函数功能:

判断字符串是否以指定的子串结尾。

  • 函数原型:
  1. bool_t str_end_with (str_t* str, char* text);
  • 参数说明:
参数 类型 说明
返回值 bool_t 返回是否以指定的子串结尾。
str str_t* str对象。
text char* 子字符串。

str_eq 函数


  • 函数功能:

判断两个字符串是否相等。

  • 函数原型:
  1. bool_t str_eq (str_t* str, char* text);
  • 参数说明:
参数 类型 说明
返回值 bool_t 返回是否相等。
str str_t* str对象。
text char* 待比较的字符串。

str_expand_vars 函数


  • 函数功能:

将字符串中的变量展开为obj中对应的属性值。

变量的格式为${xxx}:

  • xxx为变量名时,${xxx}被展开为obj的属性xxx的值。
  • xxx为表达式时,${xxx}被展开为表达式的值,表达式中可以用变量,$为变量的前缀,如${$x+$y}。
  • xxx为变量名时,而不存在obj的属性时,${xxx}被移出。
  • 函数原型:
  1. ret_t str_expand_vars (str_t* str);
  • 参数说明:
参数 类型 说明
返回值 ret_t 返回RET_OK表示成功,否则表示失败。
str str_t* str对象。

str_extend 函数


  • 函数功能:

扩展字符串到指定的容量。

  • 函数原型:
  1. ret_t str_extend (str_t* str, uint32_t capacity);
  • 参数说明:
参数 类型 说明
返回值 ret_t 返回RET_OK表示成功,否则表示失败。
str str_t* str对象。
capacity uint32_t 初始容量。

str_from_float 函数


  • 函数功能:

用浮点数初始化字符串。

  • 函数原型:
  1. ret_t str_from_float (str_t* str, double v);
  • 参数说明:
参数 类型 说明
返回值 ret_t 返回RET_OK表示成功,否则表示失败。
str str_t* str对象。
v double 浮点数。

str_from_int 函数


  • 函数功能:

用整数初始化字符串。

  • 函数原型:
  1. ret_t str_from_int (str_t* str, int32_t v);
  • 参数说明:
参数 类型 说明
返回值 ret_t 返回RET_OK表示成功,否则表示失败。
str str_t* str对象。
v int32_t 整数。

str_from_value 函数


  • 函数功能:

用value初始化字符串。

  • 函数原型:
  1. ret_t str_from_value (str_t* str, value_t v);
  • 参数说明:
参数 类型 说明
返回值 ret_t 返回RET_OK表示成功,否则表示失败。
str str_t* str对象。
v value_t value。

str_from_wstr 函数


  • 函数功能:

用value初始化字符串。

  • 函数原型:
  1. ret_t str_from_wstr (str_t* str, wchar_t* wstr);
  • 参数说明:
参数 类型 说明
返回值 ret_t 返回RET_OK表示成功,否则表示失败。
str str_t* str对象。
wstr wchar_t* wstr。

str_init 函数


  • 函数功能:

初始化字符串对象。

  • 函数原型:
  1. str_t* str_init (str_t* str, uint32_t capacity);
  • 参数说明:
参数 类型 说明
返回值 str_t* str对象本身。
str str_t* str对象。
capacity uint32_t 初始容量。

str_insert 函数


  • 函数功能:

插入子字符串。

  • 函数原型:
  1. ret_t str_insert (str_t* str, uint32_t offset, char* text);
  • 参数说明:
参数 类型 说明
返回值 ret_t 返回RET_OK表示成功,否则表示失败。
str str_t* str对象。
offset uint32_t 偏移量。
text char* 要插入的字符串。

str_insert_with_len 函数


  • 函数功能:

插入子字符串。

  • 函数原型:
  1. ret_t str_insert_with_len (str_t* str, uint32_t offset, char* text, uint32_t len);
  • 参数说明:
参数 类型 说明
返回值 ret_t 返回RET_OK表示成功,否则表示失败。
str str_t* str对象。
offset uint32_t 偏移量。
text char* 要插入的字符串。
len uint32_t 字符串长度。

str_remove 函数


  • 函数功能:

删除子字符串。

  • 函数原型:
  1. ret_t str_remove (str_t* str, uint32_t offset, uint32_t len);
  • 参数说明:
参数 类型 说明
返回值 ret_t 返回RET_OK表示成功,否则表示失败。
str str_t* str对象。
offset uint32_t 偏移量。
len uint32_t 长度。

str_replace 函数


  • 函数功能:

字符串替换。

  • 函数原型:
  1. ret_t str_replace (str_t* str, char* text, char* new_text);
  • 参数说明:
参数 类型 说明
返回值 ret_t 返回RET_OK表示成功,否则表示失败。
str str_t* str对象。
text char* 待替换的子串。
new_text char* 将替换成的子串。

str_reset 函数


  • 函数功能:

重置字符串为空。

  • 函数原型:
  1. ret_t str_reset (str_t* str);
  • 参数说明:
参数 类型 说明
返回值 ret_t 返回RET_OK表示成功,否则表示失败。
str str_t* str对象。

str_set 函数


  • 函数功能:

设置字符串。

  • 函数原型:
  1. ret_t str_set (str_t* str, char* text);
  • 参数说明:
参数 类型 说明
返回值 ret_t 返回RET_OK表示成功,否则表示失败。
str str_t* str对象。
text char* 要设置的字符串。

str_set_with_len 函数


  • 函数功能:

设置字符串。

  • 函数原型:
  1. ret_t str_set_with_len (str_t* str, char* text, uint32_t len);
  • 参数说明:
参数 类型 说明
返回值 ret_t 返回RET_OK表示成功,否则表示失败。
str str_t* str对象。
text char* 要设置的字符串。
len uint32_t 字符串长度。

str_start_with 函数


  • 函数功能:

判断字符串是否以指定的子串开头。

  • 函数原型:
  1. bool_t str_start_with (str_t* str, char* text);
  • 参数说明:
参数 类型 说明
返回值 bool_t 返回是否以指定的子串开头。
str str_t* str对象。
text char* 子字符串。

str_to_float 函数


  • 函数功能:

将字符串转成浮点数。

  • 函数原型:
  1. ret_t str_to_float (str_t* str, double* v);
  • 参数说明:
参数 类型 说明
返回值 ret_t 返回RET_OK表示成功,否则表示失败。
str str_t* str对象。
v double* 用于返回浮点数。

str_to_int 函数


  • 函数功能:

将字符串转成整数。

  • 函数原型:
  1. ret_t str_to_int (str_t* str, int32_t* v);
  • 参数说明:
参数 类型 说明
返回值 ret_t 返回RET_OK表示成功,否则表示失败。
str str_t* str对象。
v int32_t* 用于返回整数。

str_to_lower 函数


  • 函数功能:

将字符串转成小写。

  • 函数原型:
  1. ret_t str_to_lower (str_t* str);
  • 参数说明:
参数 类型 说明
返回值 ret_t 返回RET_OK表示成功,否则表示失败。
str str_t* str对象。

str_to_upper 函数


  • 函数功能:

将字符串转成大写。

  • 函数原型:
  1. ret_t str_to_upper (str_t* str);
  • 参数说明:
参数 类型 说明
返回值 ret_t 返回RET_OK表示成功,否则表示失败。
str str_t* str对象。

str_trim 函数


  • 函数功能:

去除首尾指定的字符。

  • 函数原型:
  1. ret_t str_trim (str_t* str, char* text);
  • 参数说明:
参数 类型 说明
返回值 ret_t 返回RET_OK表示成功,否则表示失败。
str str_t* str对象。
text char* 要去除的字符集合。

str_trim_left 函数


  • 函数功能:

去除首部指定的字符。

  • 函数原型:
  1. ret_t str_trim_left (str_t* str, char* text);
  • 参数说明:
参数 类型 说明
返回值 ret_t 返回RET_OK表示成功,否则表示失败。
str str_t* str对象。
text char* 要去除的字符集合。

str_trim_right 函数


  • 函数功能:

去除尾部指定的字符。

  • 函数原型:
  1. ret_t str_trim_right (str_t* str, char* text);
  • 参数说明:
参数 类型 说明
返回值 ret_t 返回RET_OK表示成功,否则表示失败。
str str_t* str对象。
text char* 要去除的字符集合。

str_unescape 函数


  • 函数功能:

对字符串进行反转义。如:把”\n”转换成’\n’。

  • 函数原型:
  1. ret_t str_unescape (str_t* str);
  • 参数说明:
参数 类型 说明
返回值 ret_t 返回RET_OK表示成功,否则表示失败。
str str_t* str对象。

capacity 属性


容量。

  • 类型:uint32_t
特性 是否支持
可直接读取
可直接修改

size 属性


长度。

  • 类型:uint32_t
特性 是否支持
可直接读取
可直接修改

str 属性


字符串。

  • 类型:char*
特性 是否支持
可直接读取
可直接修改