# utils_t

# 概述

工具类。

# 函数

函数名称 说明
bits_stream_get 从buff中获取第index位的值。
bits_stream_set 设置buff中第index位的值。
compare_always_equal 始终返回相等。
data_url_copy 将数据从源URL拷贝到目标URL。
default_destroy 缺省的destroy函数。释放data指向的内存。
dummy_destroy 空的destroy函数。
file_read_as_unix_text 读取文本文件。并将windows换行(\r\n)或macos换行(\r)转换为uinux换行(\n)。
filename_to_name 从完整文件名中获取文件名。
filename_to_name_ex 从完整文件名中获取文件名。
image_region_parse 解析子图的区域信息。
object_to_json 将对象转换成json字符串。
pointer_compare 指针比较。
ret_code_from_name 将ret_t的文本名称转换成对应的值。
ret_code_to_name 将ret_t转换成对应的文本名称。
tk_atob 将字符串转换为布尔类型。
tk_atof 将字符串转换为浮点类型。
tk_atoi 将字符串转换为整型数。
tk_atol 将字符串转换为整型。
tk_atoul 将字符串转换为整型。
tk_eval_ratio_or_px 如果expr以px/PX结束,直接返回expr前面的数值。
tk_free_utf8_argv 释放utf8字符串数组。
tk_ftoa 将浮点型转换为字符串。
tk_is_ui_thread 判断当前线程是否是UI线程。
tk_is_valid_name 判断是否是有效的属性名。
tk_itoa 将整型转换为字符串。
tk_lltoa 将整型转换为字符串。
tk_memcpy 内存拷贝。
tk_memcpy16 拷贝数据2字节。
tk_memcpy32 拷贝数据4字节。
tk_memdup 内存拷贝。
tk_memset16 设置数据2字节。
tk_memset24 设置数据3字节。
tk_memset32 设置数据4字节。
tk_normalize_key_name 标准化key_name
tk_pixel_copy 已bpp字节为标准拷贝数据。
tk_pointer_from_int 将int转换成指针。
tk_pointer_to_int 将指针转换成int。
tk_qsort 快速排序。
tk_replace_char 替换字符。
tk_replace_locale 将文本中的$locale$替换为对应的语言。
tk_set_ui_thread 设置UI线程的ID。
tk_skip_to_num 跳过字符串函数,如:字符串"hello123world",返回的结果是"123world"。
tk_snprintf 将可变参数(...)按照format格式化字符串,并将字符串复制到str中。
tk_sscanf 从字符串读取格式化输入。
tk_sscanf_simple 从字符串读取格式化输入。
tk_str_append 字符串追加函数。
tk_str_copy 字符串拷贝函数。
tk_str_end_with 检查字符串是否以指定的字符串appendix结尾。
tk_str_is_in_array 检查字符串是否在字符串数组中。
tk_str_start_with 检查字符串是否以指定的字符串prefix开头。
tk_str_tolower 将大写字母转换为小写字母。
tk_str_totitle 将单词首字母转换为大写字母。
tk_str_toupper 将小写字母转换为大写字母。
tk_strcmp 字符串比较函数。
tk_strcpy 将src所指向的字符串复制到dst。
tk_strdup 字符串拷贝函数。
tk_stricmp 字符串比较函数(不区分大小写)。
tk_strlen 获取字符串的长度。str为空时返回0。
tk_strncpy 将src所指向的字符串复制到dst,最多复制len个字符串,并在[len]位置添加'\0'。
tk_strncpy_s 将src所指向的字符串复制到dst,最多复制min(dst_len-1, src_len)个字符串,并在[len]位置添加'\0'。
tk_strndup 字符串拷贝函数,最多复制len个字符串。
tk_strnlen 获取字符串的长度。str为空时返回0。
tk_strrstr 从后往前查找指定的字符串。
tk_strtoi 将字符串转换为整型。
tk_strtol 将字符串转换为长整型。
tk_strtoll 将字符串转换为长整型。
tk_to_utf8_argv 将宽字符串数组转换成utf8字符串数组。
tk_under_score_to_camel 将下划线名字转成驼峰名字。
tk_utf8_dup_wstr 将UCS字符串拷贝为utf8字符串。
tk_vsnprintf 将可变参数ap按照format格式化字符串,并将字符串复制到str中。
tk_watob 将宽字符串转换为布尔类型。
tk_watof 将宽字符串转换为浮点类型。
tk_watoi 将宽字符串转换为整型。
tk_watoi_n 将宽字符串转换为整型。
tk_wild_card_match 简单的通配符匹配。*匹配0到多个字符,?匹配1个字符。
tk_wstr_count_c 统计UCS字符串中某个字符出现的次数。
tk_wstr_dup_utf8 将utf8字符串拷贝为UCS字符串。
tk_wstr_select_word 获取字符串中距离某个位置最近的单词(中文或英文字符)或数字字符的范围,选取的范围由标点符号或空格分隔开,得到的范围由left与right两个指针获取。
tk_wstrcmp 字符串比较函数。
tk_wstrdup 宽字符串拷贝函数。
tk_wstricmp 字符串比较函数(不区分大小写)。
xml_file_expand_read expand include process instruction to file content:

# bits_stream_get 函数

  • 函数功能:

从buff中获取第index位的值。

  • 函数原型:
ret_t bits_stream_get (const uint8_t* buff, uint32_t size, uint32_t index, bool_t* value);
  • 参数说明:
参数 类型 说明
返回值 ret_t 返回RET_OK表示成功,否则表示失败。
buff const uint8_t* 数据。
size uint32_t 数据长度。
index uint32_t 位索引。
value bool_t* 返回值。

# bits_stream_set 函数

  • 函数功能:

设置buff中第index位的值。

  • 函数原型:
ret_t bits_stream_set (uint8_t* buff, uint32_t size, uint32_t index, bool_t value);
  • 参数说明:
参数 类型 说明
返回值 ret_t 返回RET_OK表示成功,否则表示失败。
buff uint8_t* 数据。
size uint32_t 数据长度。
index uint32_t 位索引。
value bool_t 值。

# compare_always_equal 函数

  • 函数功能:

始终返回相等。

  • 函数原型:
int compare_always_equal (const void* a, const void* b);
  • 参数说明:
参数 类型 说明
返回值 int 始终返回0。
a const void* 数据a。
b const void* 数据b。

# data_url_copy 函数

  • 函数功能:

将数据从源URL拷贝到目标URL。

  • 函数原型:
ret_t data_url_copy (const char* dst_url, const char* src_url);
  • 参数说明:
参数 类型 说明
返回值 ret_t 返回RET_OK表示成功,否则表示失败。
dst_url const char* 目标URL。
src_url const char* 源URL。

# default_destroy 函数

  • 函数功能:

缺省的destroy函数。释放data指向的内存。

  • 函数原型:
ret_t default_destroy (void* data);
  • 参数说明:
参数 类型 说明
返回值 ret_t 返回RET_OK表示成功,否则表示失败。
data void* 数据。

# dummy_destroy 函数

  • 函数功能:

空的destroy函数。

  • 函数原型:
ret_t dummy_destroy (void* data);
  • 参数说明:
参数 类型 说明
返回值 ret_t 返回RET_OK表示成功,否则表示失败。
data void* 数据。

# file_read_as_unix_text 函数

  • 函数功能:

读取文本文件。并将windows换行(\r\n)或macos换行(\r)转换为uinux换行(\n)。

  • 函数原型:
char* file_read_as_unix_text (const char* filename, uint32_t* size);
  • 参数说明:
参数 类型 说明
返回值 char* 返回读取的数据,需要调用TKMEM_FREE释放。
filename const char* 文件名。
size uint32_t* 返回实际读取的长度。

# filename_to_name 函数

  • 函数功能:

从完整文件名中获取文件名。

  • 函数原型:
ret_t filename_to_name (const char* filename, char* str, uint32_t size);
  • 参数说明:
参数 类型 说明
返回值 ret_t 返回RET_OK表示成功,否则表示失败。
filename const char* 完整的文件名。
str char* 用于返回文件名。
size uint32_t 文件名(str参数)的最大长度。

# filename_to_name_ex 函数

  • 函数功能:

从完整文件名中获取文件名。

  • 函数原型:
ret_t filename_to_name_ex (const char* filename, char* str, uint32_t size, bool_t remove_extname);
  • 参数说明:
参数 类型 说明
返回值 ret_t 返回RET_OK表示成功,否则表示失败。
filename const char* 完整的文件名。
str char* 用于返回文件名。
size uint32_t 文件名(str参数)的最大长度。
remove_extname bool_t 是否移除扩展名。

# image_region_parse 函数

  • 函数功能:

解析子图的区域信息。

  • 函数原型:
ret_t image_region_parse (uint32_t img_w, uint32_t img_h, const char* region, rect_t* r);
  • 参数说明:
参数 类型 说明
返回值 ret_t 返回RET_OK表示成功,否则表示失败。
img_w uint32_t 图片宽度。
img_h uint32_t 图片宽度。
region const char* region。
r rect_t* 返回具体位置。

# object_to_json 函数

  • 函数功能:

将对象转换成json字符串。

  • 函数原型:
ret_t object_to_json (tk_object_t* obj, str_t* str);
  • 参数说明:
参数 类型 说明
返回值 ret_t 返回RET_OK表示成功,否则表示失败。
obj tk_object_t* object对象。
str str_t* 用于返回结果。

# pointer_compare 函数

  • 函数功能:

指针比较。

  • 函数原型:
int pointer_compare (const void* a, const void* b);
  • 参数说明:
参数 类型 说明
返回值 int 返回0表示相等,返回负数表示小于,返回整数表示大于。
a const void* 数据a。
b const void* 数据b。

# ret_code_from_name 函数

  • 函数功能:

将ret_t的文本名称转换成对应的值。

  • 函数原型:
ret_t ret_code_from_name (const char* name);
  • 参数说明:
参数 类型 说明
返回值 ret_t 返回对应的值。
name const char* 字符串。

# ret_code_to_name 函数

  • 函数功能:

将ret_t转换成对应的文本名称。

  • 函数原型:
const char* ret_code_to_name (ret_t ret);
  • 参数说明:
参数 类型 说明
返回值 const char* 返回对应的名称。
ret ret_t 代码。

# tk_atob 函数

  • 函数功能:

将字符串转换为布尔类型。

  • 函数原型:
bool_t tk_atob (const char* str);
  • 参数说明:
参数 类型 说明
返回值 bool_t 返回转换后的布尔类型。
str const char* 要转换为布尔类型的字符串。

# tk_atof 函数

  • 函数功能:

将字符串转换为浮点类型。

  • 函数原型:
double tk_atof (const char* str);
  • 参数说明:
参数 类型 说明
返回值 double 返回转换后的浮点类型。
str const char* 要转换为浮点类型的字符串。

# tk_atoi 函数

  • 函数功能:

将字符串转换为整型数。

  • 函数原型:
int32_t tk_atoi (const char* str);
  • 参数说明:
参数 类型 说明
返回值 int32_t 返回转换后的整型。
str const char* 要转换为整型数的字符串。

# tk_atol 函数

  • 函数功能:

将字符串转换为整型。

  • 函数原型:
int64_t tk_atol (const char* str);
  • 参数说明:
参数 类型 说明
返回值 int64_t 返回转换后的整型。
str const char* 要转换为整型的字符串。

# tk_atoul 函数

  • 函数功能:

将字符串转换为整型。

  • 函数原型:
uint64_t tk_atoul (const char* str);
  • 参数说明:
参数 类型 说明
返回值 uint64_t 返回转换后的整型。
str const char* 要转换为整型的字符串。

# tk_eval_ratio_or_px 函数

  • 函数功能:

如果expr以px/PX结束,直接返回expr前面的数值。 如果expr以%结束,而且数值大于1,返回(数值 * value)/100。 否则将数值当作比例,返回(数值 * value)。

为了兼容以前的处理,如果expr以%结束,但是数值在0到1之间,此时忽略%。

tk_eval_ratio_or_px("0.5", 100) => 50
tk_eval_ratio_or_px("20px", 100) => 20
tk_eval_ratio_or_px("20%", 100) => 20
tk_eval_ratio_or_px("0.5%", 100) => 50
  • 函数原型:
float_t tk_eval_ratio_or_px (const char* expr, int32_t value);
  • 参数说明:
参数 类型 说明
返回值 float_t 返回计算结果。
expr const char* 表达式(如100px, 0.5等)
value int32_t 值。

# tk_free_utf8_argv 函数

  • 函数功能:

释放utf8字符串数组。

  • 函数原型:
ret_t tk_free_utf8_argv (int argc, char** argv);
  • 参数说明:
参数 类型 说明
返回值 ret_t 返回RET_OK表示成功,否则表示失败。
argc int 参数个数。
argv char** 参数。

# tk_ftoa 函数

  • 函数功能:

将浮点型转换为字符串。

  • 函数原型:
const char* tk_ftoa (char* str, int len, double f);
  • 参数说明:
参数 类型 说明
返回值 const char* 返回字符串。
str char* 保存字符串缓冲区。
len int 缓冲区大小。
f double 要转换的浮点型。

# tk_is_ui_thread 函数

  • 函数功能:

判断当前线程是否是UI线程。

  • 函数原型:
bool_t tk_is_ui_thread ();
  • 参数说明:
参数 类型 说明
返回值 bool_t 返回TRUE表示是,否则表示否。

# tk_is_valid_name 函数

  • 函数功能:

判断是否是有效的属性名。

  • 函数原型:
bool_t tk_is_valid_name (const char* name);
  • 参数说明:
参数 类型 说明
返回值 bool_t 如果名称有效返回TRUE,否则返回FALSE。
name const char* 名字字符串。

# tk_itoa 函数

  • 函数功能:

将整型转换为字符串。

  • 函数原型:
const char* tk_itoa (char* str, int len, int n);
  • 参数说明:
参数 类型 说明
返回值 const char* 返回字符串。
str char* 保存字符串缓冲区。
len int 缓冲区大小。
n int 要转换的整型。

# tk_lltoa 函数

  • 函数功能:

将整型转换为字符串。

  • 函数原型:
const char* tk_lltoa (char* str, int len, int64_t n);
  • 参数说明:
参数 类型 说明
返回值 const char* 返回字符串。
str char* 保存字符串缓冲区。
len int 缓冲区大小。
n int64_t 要转换的整型。

# tk_memcpy 函数

  • 函数功能:

内存拷贝。 在地址对齐的情况下并且少于 64 个字节,效率会比 memcpy 要快,否则会退化为 memcpy。

  • 函数原型:
void* tk_memcpy (void* dst, const void* src, uint32_t len);
  • 参数说明:
参数 类型 说明
返回值 void* 返回成功返回 dst 地址,失败返回 NULL。
dst void* 目标字符串。
src const void* 源字符串。
len uint32_t 拷贝长度。

# tk_memcpy16 函数

  • 函数功能:

拷贝数据2字节。

  • 函数原型:
uint16_t* tk_memcpy16 (uint16_t* dst, uint16_t* src, uint32_t size);
  • 参数说明:
参数 类型 说明
返回值 uint16_t* 返回设置好的buff。
dst uint16_t* 目标
src uint16_t* 源。
size uint32_t 个数。

# tk_memcpy32 函数

  • 函数功能:

拷贝数据4字节。

  • 函数原型:
uint32_t* tk_memcpy32 (uint32_t* dst, uint32_t* src, uint32_t size);
  • 参数说明:
参数 类型 说明
返回值 uint32_t* 返回设置好的buff。
dst uint32_t* 目标
src uint32_t* 源。
size uint32_t 个数。

# tk_memdup 函数

  • 函数功能:

内存拷贝。

  • 函数原型:
void* tk_memdup (const void* data, uint32_t len);
  • 参数说明:
参数 类型 说明
返回值 void* 返回指向的向新的内存指针,如果失败则返回NULL。
data const void* 原内存。
len uint32_t 长度。

# tk_memset16 函数

  • 函数功能:

设置数据2字节。

  • 函数原型:
uint16_t* tk_memset16 (uint16_t* buff, uint16_t val, uint32_t size);
  • 参数说明:
参数 类型 说明
返回值 uint16_t* 返回设置好的buff。
buff uint16_t* buff
val uint16_t 值。
size uint32_t 个数。

# tk_memset24 函数

  • 函数功能:

设置数据3字节。

  • 函数原型:
uint32_t* tk_memset24 (uint32_t* buff, void* val, uint32_t size);
  • 参数说明:
参数 类型 说明
返回值 uint32_t* 返回设置好的buff。
buff uint32_t* buff。
val void* 值。
size uint32_t 个数。

# tk_memset32 函数

  • 函数功能:

设置数据4字节。

  • 函数原型:
uint32_t* tk_memset32 (uint32_t* buff, uint32_t val, uint32_t size);
  • 参数说明:
参数 类型 说明
返回值 uint32_t* 返回设置好的buff。
buff uint32_t* buff。
val uint32_t 值。
size uint32_t 个数。

# tk_normalize_key_name 函数

  • 函数功能:

标准化key_name

  • 函数原型:
const char* tk_normalize_key_name (const char* name, char* fixed_name);
  • 参数说明:
参数 类型 说明
返回值 const char* 返回标准化后的字符串。
name const char* key_name。
fixed_name char* 保存标准化后的字符串。

# tk_pixel_copy 函数

  • 函数功能:

已bpp字节为标准拷贝数据。

  • 函数原型:
void* tk_pixel_copy (void* dst, const void* src, uint32_t size, uint8_t bpp);
  • 参数说明:
参数 类型 说明
返回值 void* 返回设置好的buff。
dst void* 目标
src const void* 源。
size uint32_t 个数。
bpp uint8_t 单个数据的字节数。

# tk_pointer_from_int 函数

  • 函数功能:

将int转换成指针。

常用于将int类型的数据作为回调函数的ctx。

  • 函数原型:
void* tk_pointer_from_int (int32_t v);
  • 参数说明:
参数 类型 说明
返回值 void* 返回对应的指针。
v int32_t 整数。

# tk_pointer_to_int 函数

  • 函数功能:

将指针转换成int。

与tk_pointer_from_int配套使用,也就是pointer本身必须就是整数,而不是指针,否则pointer会被截断。

  • 函数原型:
int32_t tk_pointer_to_int (const void* p);
  • 参数说明:
参数 类型 说明
返回值 int32_t 返回对应的int数据。
p const void* 指针。

# tk_qsort 函数

  • 函数功能:

快速排序。

  • 函数原型:
ret_t tk_qsort (void** array, size_t nr, tk_compare_t cmp);
  • 参数说明:
参数 类型 说明
返回值 ret_t 返回RET_OK表示成功,否则表示失败。
array void** 数据。
nr size_t 元素个数。
cmp tk_compare_t 比较函数。

# tk_replace_char 函数

  • 函数功能:

替换字符。

  • 函数原型:
char* tk_replace_char (char* str, char from, char to);
  • 参数说明:
参数 类型 说明
返回值 char* 返回str。
str char* 原字符串。
from char 被替换的字符。
to char 替换成的字符。

# tk_replace_locale 函数

  • 函数功能:

将文本中的$locale$替换为对应的语言。

  • 函数原型:
ret_t tk_replace_locale (const char* name, char* out, const char* locale);
  • 参数说明:
参数 类型 说明
返回值 ret_t 返回RET_OK表示成功,否则表示失败。
name const char* 文本。
out char* 替换后保存的字符串。
locale const char* 语言。

# tk_set_ui_thread 函数

  • 函数功能:

设置UI线程的ID。

  • 函数原型:
ret_t tk_set_ui_thread (uint64_t ui_thread_id);
  • 参数说明:
参数 类型 说明
返回值 ret_t 返回RET_OK表示成功,否则表示失败。
ui_thread_id uint64_t UI线程的ID。

# tk_skip_to_num 函数

  • 函数功能:

跳过字符串函数,如:字符串"hello123world",返回的结果是"123world"。

  • 函数原型:
const char* tk_skip_to_num (const char* str);
  • 参数说明:
参数 类型 说明
返回值 const char* 返回转换后的字符串。
str const char* 要输入的原始字符串。

# tk_snprintf 函数

  • 函数功能:

将可变参数(...)按照format格式化字符串,并将字符串复制到str中。

  • 函数原型:
int tk_snprintf (char* str, size_t size, const char* format);
  • 参数说明:
参数 类型 说明
返回值 int 返回格式化后的字符串长度。
str char* 目标字符串。
size size_t 拷贝字节数。
format const char* 格式化字符串。

# tk_sscanf 函数

  • 函数功能:

从字符串读取格式化输入。

  • 函数原型:
int tk_sscanf (const char* str, const char* format);
  • 参数说明:
参数 类型 说明
返回值 int 返回成功匹配和赋值的个数。
str const char* 要输入的字符串。
format const char* 格式化字符串。

# tk_sscanf_simple 函数

  • 函数功能:

从字符串读取格式化输入。

TKC自己实现的,只支持几种简单的格式,在没有sscanf函数时使用。

  • 函数原型:
int tk_sscanf_simple (const char* str, const char* format);
  • 参数说明:
参数 类型 说明
返回值 int 返回成功匹配和赋值的个数。
str const char* 要输入的字符串。
format const char* 格式化字符串。

# tk_str_append 函数

  • 函数功能:

字符串追加函数。

  • 函数原型:
ret_t tk_str_append (char* str, uint32_t max_len, const char* s);
  • 参数说明:
参数 类型 说明
返回值 ret_t 返回RET_OK表示成功,否则表示失败。
str char* 被追加字符串。
max_len uint32_t 字符串的最大长度。
s const char* 要追加的字符串。

# tk_str_copy 函数

  • 函数功能:

字符串拷贝函数。

XXX: 要求dst为NULL或内存块的首地址,本函数调用之后,dst可能无效,请保留返回的地址 该函数会自动申请内存,调用后需要使用TKMEM_FREE释放。

  • 函数原型:
char* tk_str_copy (char* dst, const char* src);
  • 参数说明:
参数 类型 说明
返回值 char* 返回指向的复制字符串指针,如果失败则返回NULL。
dst char* 目标字符串。
src const char* 源字符串。

# tk_str_end_with 函数

  • 函数功能:

检查字符串是否以指定的字符串appendix结尾。

  • 函数原型:
bool_t tk_str_end_with (const char* str, const char* appendix);
  • 参数说明:
参数 类型 说明
返回值 bool_t 返回TRUE表示是;否则表示不是。
str const char* 要检查字符串。
appendix const char* 被检查的字符串。

# tk_str_is_in_array 函数

  • 函数功能:

检查字符串是否在字符串数组中。

  • 函数原型:
bool_t tk_str_is_in_array (const char* str, const char** str_array, uint32_t array_size);
  • 参数说明:
参数 类型 说明
返回值 bool_t 返回TRUE表示在,否则表示不在。
str const char* 字符串。
str_array const char** 字符串数组。
array_size uint32_t 字符串数组中字符串的个数。

# tk_str_start_with 函数

  • 函数功能:

检查字符串是否以指定的字符串prefix开头。

  • 函数原型:
bool_t tk_str_start_with (const char* str, const char* prefix);
  • 参数说明:
参数 类型 说明
返回值 bool_t 返回TRUE表示是;否则表示不是。
str const char* 要检查字符串。
prefix const char* 被检查的字符串。

# tk_str_tolower 函数

  • 函数功能:

将大写字母转换为小写字母。

修改传入的字符串。

  • 函数原型:
char* tk_str_tolower (char* str);
  • 参数说明:
参数 类型 说明
返回值 char* 返回转换后的小写字母字符串。
str char* 要被转换成小写字母的字符串。

# tk_str_totitle 函数

  • 函数功能:

将单词首字母转换为大写字母。

修改传入的字符串。

  • 函数原型:
char* tk_str_totitle (char* str);
  • 参数说明:
参数 类型 说明
返回值 char* 返回转换后的字符串。
str char* 被转换的字符串。

# tk_str_toupper 函数

  • 函数功能:

将小写字母转换为大写字母。

修改传入的字符串。

  • 函数原型:
char* tk_str_toupper (char* str);
  • 参数说明:
参数 类型 说明
返回值 char* 返回转换后的大写字母字符串。
str char* 要被转换成大写字母的字符串。

# tk_strcmp 函数

  • 函数功能:

字符串比较函数。

  • 函数原型:
int32_t tk_strcmp (const char* a, const char* b);
  • 参数说明:
参数 类型 说明
返回值 int32_t 如果返回值=-1,则表示a为NULL;如果返回值=1,则表示b为NULL;如果返回0,则表示a大于b;如果返回值=0,则表示a等于b。
a const char* 要进行比较的第一个字符串。
b const char* 要进行比较的第二个字符串。

# tk_strcpy 函数

  • 函数功能:

将src所指向的字符串复制到dst。

  • 函数原型:
char* tk_strcpy (char* dst, const char* src);
  • 参数说明:
参数 类型 说明
返回值 char* 返回目标字符串。
dst char* 目标字符串。
src const char* 原字符串。

# tk_strdup 函数

  • 函数功能:

字符串拷贝函数。

  • 函数原型:
char* tk_strdup (const char* str);
  • 参数说明:
参数 类型 说明
返回值 char* 返回指向的复制字符串指针,如果失败则返回NULL。
str const char* 原字符串。

# tk_stricmp 函数

  • 函数功能:

字符串比较函数(不区分大小写)。

  • 函数原型:
int32_t tk_stricmp (const char* a, const char* b);
  • 参数说明:
参数 类型 说明
返回值 int32_t 如果返回值=-1,则表示a为NULL;如果返回值=1,则表示b为NULL;如果返回0,则表示a大于b;如果返回值=0,则表示a等于b。
a const char* 要进行比较的第一个字符串。
b const char* 要进行比较的第二个字符串。

# tk_strlen 函数

  • 函数功能:

获取字符串的长度。str为空时返回0。

  • 函数原型:
uint32_t tk_strlen (const char* str);
  • 参数说明:
参数 类型 说明
返回值 uint32_t 返回字符串的长度。
str const char* 字符串。

# tk_strncpy 函数

  • 函数功能:

将src所指向的字符串复制到dst,最多复制len个字符串,并在[len]位置添加'\0'。

请确保dst的长度>=(len+1)

  • 函数原型:
char* tk_strncpy (char* dst, const char* src, size_t len);
  • 参数说明:
参数 类型 说明
返回值 char* 返回目标字符串。
dst char* 目标字符串。
src const char* 源字符串。
len size_t 要复制的字符串个数。

# tk_strncpy_s 函数

  • 函数功能:

将src所指向的字符串复制到dst,最多复制min(dst_len-1, src_len)个字符串,并在[len]位置添加'\0'。 如果 dst 和 src 的地址对齐的话,效率会比 strncpy 高,如果小于 64 个字节的话,效率是最高的。

  • 函数原型:
char* tk_strncpy_s (char* dst, size_t dst_len, const char* src, size_t src_len);
  • 参数说明:
参数 类型 说明
返回值 char* 返回目标字符串。
dst char* 目标字符串。
dst_len size_t 目标字符串内存长度。
src const char* 源字符串。
src_len size_t 要复制的字符串个数。

# tk_strndup 函数

  • 函数功能:

字符串拷贝函数,最多复制len个字符串。

  • 函数原型:
char* tk_strndup (const char* str, uint32_t len);
  • 参数说明:
参数 类型 说明
返回值 char* 返回指向的复制字符串指针,如果失败则返回NULL。
str const char* 原字符串。
len uint32_t 要复制的字符串个数。

# tk_strnlen 函数

  • 函数功能:

获取字符串的长度。str为空时返回0。

  • 函数原型:
uint32_t tk_strnlen (const char* str, uint32_t maxlen);
  • 参数说明:
参数 类型 说明
返回值 uint32_t 返回字符串的长度。
str const char* 字符串。
maxlen uint32_t 最大长度。

# tk_strrstr 函数

  • 函数功能:

从后往前查找指定的字符串。

  • 函数原型:
const char* tk_strrstr (const char* str, const char* substr);
  • 参数说明:
参数 类型 说明
返回值 const char* 返回字符串的位置或者NULL。
str const char* 字符串。
substr const char* 子字符串。

# tk_strtoi 函数

  • 函数功能:

将字符串转换为整型。

  • 函数原型:
int32_t tk_strtoi (const char* str, const char** end, int base);
  • 参数说明:
参数 类型 说明
返回值 int32_t 返回转换后的整型。
str const char* 要转换为整型的字符串。
end const char** 对类型char*的对象的引用。
base int 基数。

# tk_strtol 函数

  • 函数功能:

将字符串转换为长整型。

  • 函数原型:
long tk_strtol (const char* str, const char** end, int base);
  • 参数说明:
参数 类型 说明
返回值 long 返回转换后的长整型。
str const char* 要转换为长整型的字符串。
end const char** 对类型char*的对象的引用。
base int 基数。

# tk_strtoll 函数

  • 函数功能:

将字符串转换为长整型。

  • 函数原型:
int64_t tk_strtoll (const char* str, const char** end, int base);
  • 参数说明:
参数 类型 说明
返回值 int64_t 返回转换后的长整型。
str const char* 要转换为长整型的字符串。
end const char** 对类型char*的对象的引用。
base int 基数。

# tk_to_utf8_argv 函数

  • 函数功能:

将宽字符串数组转换成utf8字符串数组。

  • 函数原型:
char** tk_to_utf8_argv (int argc, wchar_t** argv);
  • 参数说明:
参数 类型 说明
返回值 char** 返回utf8字符串数组。
argc int 参数个数。
argv wchar_t** 参数。

# tk_under_score_to_camel 函数

  • 函数功能:

将下划线名字转成驼峰名字。

  • 函数原型:
const char* tk_under_score_to_camel (const char* name, char* out, uint32_t max_out_size);
  • 参数说明:
参数 类型 说明
返回值 const char* 返回T驼峰名字。
name const char* 下划线名字。
out char* 驼峰名字(保存结果)。
max_out_size uint32_t 结果最大长度。

# tk_utf8_dup_wstr 函数

  • 函数功能:

将UCS字符串拷贝为utf8字符串。

  • 函数原型:
char* tk_utf8_dup_wstr (const wchar_t* str);
  • 参数说明:
参数 类型 说明
返回值 char* 返回UTF-8字符串(需要调用TKMEM_FREE释放)。
str const wchar_t* 字符串。

# tk_vsnprintf 函数

  • 函数功能:

将可变参数ap按照format格式化字符串,并将字符串复制到str中。

  • 函数原型:
int tk_vsnprintf (char* str, size_t size, const char* format, va_list ap);
  • 参数说明:
参数 类型 说明
返回值 int 返回格式化后的字符串长度。
str char* 目标字符串。
size size_t 拷贝字节数。
format const char* 格式化字符串。
ap va_list 可变参数。

# tk_watob 函数

  • 函数功能:

将宽字符串转换为布尔类型。

  • 函数原型:
bool_t tk_watob (const wchar_t* str);
  • 参数说明:
参数 类型 说明
返回值 bool_t 返回转换后的布尔类型。
str const wchar_t* 要转换为布尔类型的宽字符串。

# tk_watof 函数

  • 函数功能:

将宽字符串转换为浮点类型。

  • 函数原型:
double tk_watof (const wchar_t* str);
  • 参数说明:
参数 类型 说明
返回值 double 返回转换后的浮点类型。
str const wchar_t* 要转换为浮点类型的宽字符串。

# tk_watoi 函数

  • 函数功能:

将宽字符串转换为整型。

  • 函数原型:
int tk_watoi (const wchar_t* str);
  • 参数说明:
参数 类型 说明
返回值 int 返回转换后的整型。
str const wchar_t* 要转换为整型的宽字符串。

# tk_watoi_n 函数

  • 函数功能:

将宽字符串转换为整型。

  • 函数原型:
int tk_watoi_n (const wchar_t* str, uint32_t len);
  • 参数说明:
参数 类型 说明
返回值 int 返回转换后的整型。
str const wchar_t* 要转换为整型的宽字符串。
len uint32_t 字符串长度。

# tk_wild_card_match 函数

  • 函数功能:

简单的通配符匹配。*匹配0到多个字符,?匹配1个字符。 示例:

tk_wild_card_match("*c", "abc");
tk_wild_card_match("a?c", "abc");
  • 函数原型:
bool_t tk_wild_card_match (const char* pattern, const char* str);
  • 参数说明:
参数 类型 说明
返回值 bool_t 返回TRUE表示匹配,否则表示不匹配。
pattern const char* 字符串。
str const char* 字符串。

# tk_wstr_count_c 函数

  • 函数功能:

统计UCS字符串中某个字符出现的次数。

  • 函数原型:
uint32_t tk_wstr_count_c (const wchar_t* str, wchar_t c);
  • 参数说明:
参数 类型 说明
返回值 uint32_t 返回字符出现的次数。
str const wchar_t* 字符串。
c wchar_t 字符。

# tk_wstr_dup_utf8 函数

  • 函数功能:

将utf8字符串拷贝为UCS字符串。

  • 函数原型:
wchar_t* tk_wstr_dup_utf8 (const char* str);
  • 参数说明:
参数 类型 说明
返回值 wchar_t* 返回UCS字符串(需要调用TKMEM_FREE释放)。
str const char* utf8编码的字符串。

# tk_wstr_select_word 函数

  • 函数功能:

获取字符串中距离某个位置最近的单词(中文或英文字符)或数字字符的范围,选取的范围由标点符号或空格分隔开,得到的范围由left与right两个指针获取。

  • 函数原型:
ret_t tk_wstr_select_word (const wchar_t* str, uint32_t len, uint32_t index, int32_t* left, int32_t* right);
  • 参数说明:
参数 类型 说明
返回值 ret_t 返回RET_OK表示成功,否则表示失败。
str const wchar_t* 字符串。
len uint32_t 字符串的长度。
index uint32_t 字符串中某个位置的下标。
left int32_t* int32_t指针,用来获取范围结果的左边界值
right int32_t* int32_t指针,用来获取范围结果的右边界值

# tk_wstrcmp 函数

  • 函数功能:

字符串比较函数。

  • 函数原型:
int32_t tk_wstrcmp (const wchar_t* a, const wchar_t* b);
  • 参数说明:
参数 类型 说明
返回值 int32_t 如果返回值=-1,则表示a为NULL;如果返回值=1,则表示b为NULL;如果返回0,则表示a大于b;如果返回值=0,则表示a等于b。
a const wchar_t* 要进行比较的第一个字符串。
b const wchar_t* 要进行比较的第二个字符串。

# tk_wstrdup 函数

  • 函数功能:

宽字符串拷贝函数。

  • 函数原型:
wchar_t* tk_wstrdup (const wchar_t* str);
  • 参数说明:
参数 类型 说明
返回值 wchar_t* 返回指向的复制宽字符串指针,如果失败则返回NULL。
str const wchar_t* 原宽字符串。

# tk_wstricmp 函数

  • 函数功能:

字符串比较函数(不区分大小写)。

  • 函数原型:
int32_t tk_wstricmp (const wchar_t* a, const wchar_t* b);
  • 参数说明:
参数 类型 说明
返回值 int32_t 如果返回值=-1,则表示a为NULL;如果返回值=1,则表示b为NULL;如果返回0,则表示a大于b;如果返回值=0,则表示a等于b。
a const wchar_t* 要进行比较的第一个字符串。
b const wchar_t* 要进行比较的第二个字符串。

# xml_file_expand_read 函数

  • 函数功能:

expand include process instruction to file content:

  • 函数原型:
ret_t xml_file_expand_read (const char* filename, str_t* s);
  • 参数说明:
参数 类型 说明
返回值 ret_t 返回RET_OK表示成功,否则表示失败。
filename const char* 文件名。
s str_t* 用于返回内容。