awtk/docs/manual/str_t.md
2021-02-23 11:17:36 +08:00

25 KiB
Raw Blame History

str_t

概述

可变长度的UTF8字符串。

示例:

str_t s;
str_init(&s, 0);

str_append(&s, "abc");
str_append(&s, "123");
log_debug("%s\n", s.str);

str_reset(&s);

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


函数

函数名称 说明
str_append 追加字符串。
str_append_char 追加一个字符。
str_append_double 追加一个浮点数。
str_append_int 追加一个整数。
str_append_json_bool_pair 追加bool格式的json键值对。
str_append_json_double_pair 追加doube格式的json键值对。
str_append_json_int_pair 追加int格式的json键值对。
str_append_json_str 追加一个字符串,字符串前后加英文双引号,字符串本身的双引号被转义为"。
str_append_json_str_pair 追加字符串格式的json键值对。
str_append_more 追加多个字符串。以NULL结束。
str_append_with_len 追加字符串。
str_clear 清除字符串内容。
str_decode_xml_entity 对XML基本的entity进行解码目前仅支持<>&quota;&。
str_decode_xml_entity_with_len 对XML基本的entity进行解码目前仅支持<>&quota;&。
str_encode_hex 把二进制的数据编码成16进制格式的字符串。
str_encode_hex 把16进制格式的字符串解码成字符串。
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_from_wstr_with_len 用value初始化字符串。
str_init 初始化字符串对象。
str_insert 插入子字符串。
str_insert_with_len 插入子字符串。
str_pop 删除最后一个字符。
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 函数


  • 函数功能:

追加字符串。

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

str_append_char 函数


  • 函数功能:

追加一个字符。

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

str_append_double 函数


  • 函数功能:

追加一个浮点数。

  • 函数原型:
ret_t str_append_double (str_t* str, const char* format, double value);
  • 参数说明:
参数 类型 说明
返回值 ret_t 返回RET_OK表示成功否则表示失败。
str str_t* str对象。
format const char* 格式。
value double 要追加的浮点数。

str_append_int 函数


  • 函数功能:

追加一个整数。

  • 函数原型:
ret_t str_append_int (str_t* str, int32_t value);
  • 参数说明:
参数 类型 说明
返回值 ret_t 返回RET_OK表示成功否则表示失败。
str str_t* str对象。
value int32_t 要追加的整数。

str_append_json_bool_pair 函数


  • 函数功能:

追加bool格式的json键值对。

  • 函数原型:
ret_t str_append_json_bool_pair (str_t* str, const char* key, bool_t value);
  • 参数说明:
参数 类型 说明
返回值 ret_t 返回RET_OK表示成功否则表示失败。
str str_t* str对象。
key const char* 键。
value bool_t 值。

str_append_json_double_pair 函数


  • 函数功能:

追加doube格式的json键值对。

  • 函数原型:
ret_t str_append_json_double_pair (str_t* str, const char* key, double value);
  • 参数说明:
参数 类型 说明
返回值 ret_t 返回RET_OK表示成功否则表示失败。
str str_t* str对象。
key const char* 键。
value double 值。

str_append_json_int_pair 函数


  • 函数功能:

追加int格式的json键值对。

  • 函数原型:
ret_t str_append_json_int_pair (str_t* str, const char* key, int32_t value);
  • 参数说明:
参数 类型 说明
返回值 ret_t 返回RET_OK表示成功否则表示失败。
str str_t* str对象。
key const char* 键。
value int32_t 值。

str_append_json_str 函数


  • 函数功能:

追加一个字符串,字符串前后加英文双引号,字符串本身的双引号被转义为\"。

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

str_append_json_str_pair 函数


  • 函数功能:

追加字符串格式的json键值对。

  • 函数原型:
ret_t str_append_json_str_pair (str_t* str, const char* key, const char* value);
  • 参数说明:
参数 类型 说明
返回值 ret_t 返回RET_OK表示成功否则表示失败。
str str_t* str对象。
key const char* 键。
value const char* 值。

str_append_more 函数


  • 函数功能:

追加多个字符串。以NULL结束。

示例:

str_t s;
str_init(&s, 0);

str_append_more(&s, "abc", "123", NULL);
log_debug("%s\n", s.str);

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

str_append_with_len 函数


  • 函数功能:

追加字符串。

  • 函数原型:
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 函数


  • 函数功能:

清除字符串内容。

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

str_decode_xml_entity 函数


  • 函数功能:

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

  • 函数原型:
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;&。

  • 函数原型:
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_encode_hex 函数


  • 函数功能:

把二进制的数据编码成16进制格式的字符串。

  • 函数原型:
ret_t str_encode_hex (str_t* str, const uint8_t* data, uint32_t size, const char* format);
  • 参数说明:
参数 类型 说明
返回值 ret_t 返回RET_OK表示成功否则表示失败。
str str_t* str对象。
data const uint8_t* 数据。
size uint32_t 数据长度。
format const char* 格式(如:"%02x" 表示生成小写)

str_encode_hex 函数


  • 函数功能:

把16进制格式的字符串解码成字符串。

  • 函数原型:
ret_t str_encode_hex (str_t* str, uint8_t* data, uint32_t size);
  • 参数说明:
参数 类型 说明
返回值 ret_t 返回RET_OK表示成功否则表示失败。
str str_t* str对象。
data uint8_t* 数据缓存区(返回)。
size uint32_t 数据最大长度。

str_end_with 函数


  • 函数功能:

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

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

str_eq 函数


  • 函数功能:

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

  • 函数原型:
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}被移出。

  • 函数原型:

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

str_extend 函数


  • 函数功能:

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

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

str_from_float 函数


  • 函数功能:

用浮点数初始化字符串。

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

str_from_int 函数


  • 函数功能:

用整数初始化字符串。

  • 函数原型:
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初始化字符串。

  • 函数原型:
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初始化字符串。

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

str_from_wstr_with_len 函数


  • 函数功能:

用value初始化字符串。

  • 函数原型:
ret_t str_from_wstr_with_len (str_t* str, wchar_t* wstr, uint32_t len);
  • 参数说明:
参数 类型 说明
返回值 ret_t 返回RET_OK表示成功否则表示失败。
str str_t* str对象。
wstr wchar_t* Unicode字符串
len uint32_t Unicode字符串的长度。

str_init 函数


  • 函数功能:

初始化字符串对象。

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

str_insert 函数


  • 函数功能:

插入子字符串。

  • 函数原型:
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 函数


  • 函数功能:

插入子字符串。

  • 函数原型:
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_pop 函数


  • 函数功能:

删除最后一个字符。

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

str_remove 函数


  • 函数功能:

删除子字符串。

  • 函数原型:
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 函数


  • 函数功能:

字符串替换。

  • 函数原型:
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 函数


  • 函数功能:

重置字符串为空。

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

str_set 函数


  • 函数功能:

设置字符串。

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

str_set_with_len 函数


  • 函数功能:

设置字符串。

  • 函数原型:
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 函数


  • 函数功能:

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

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

str_to_float 函数


  • 函数功能:

将字符串转成浮点数。

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

str_to_int 函数


  • 函数功能:

将字符串转成整数。

  • 函数原型:
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 函数


  • 函数功能:

将字符串转成小写。

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

str_to_upper 函数


  • 函数功能:

将字符串转成大写。

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

str_trim 函数


  • 函数功能:

去除首尾指定的字符。

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

str_trim_left 函数


  • 函数功能:

去除首部指定的字符。

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

str_trim_right 函数


  • 函数功能:

去除尾部指定的字符。

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

str_unescape 函数


  • 函数功能:

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

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

capacity 属性


容量。

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

size 属性


长度。

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

str 属性


字符串。

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