TC官方文档翻译10----其他API(Tokyo Cabinet/Tokyo Tyarnt 文档系列)

/**
 * 转载请注明出处, 由于个人技术能力有限, 英语水平欠缺,
 * 有翻译不合适或错误的地方, 请纠正,
 * 希望不要因为我的错误误导您, 希望您的智慧可以加入.
 * @translator: selfimpr
 * @mail: [email protected]
 * @blog: http://blog.csdn.net/lgg201
 */

 

一些混杂的工具 API

long tclmax(long a, long b);

         返回 a b 中的大值

long tclmin(long a, long b);

         返回 a b 中的小值

unsigned long tclrand();

         返回一个无符号长整型的随机数 . 内部是通过 /dev/urandom 生成随机数然后与时间戳进行计算 ( 没看懂 , 有懂的朋友有空的话发邮件 [email protected] 讲讲 , 学习学习 , 谢谢 ).

double tcdrand();

         生成 double 型的随机数 .

int tcstricmp(const char *astr, const char *bstr);

         大小写不敏感的比较两个字符串 , a>b 返回正数 , 小于返回负数 , 相等返回 0

bool tcstrfwm(const char *str, const char *key);

         如果 str key 开始则返回 true

bool tcstrifwm(const char *str, const char *key);

         tcstrfwm 的大小写不敏感版本

bool tcstrbwm(const char *str, const char *key);

         检查 str 是否以 key 结尾

bool tcstribwm(const char *str, const char *key);

         tcstrbwm 的大小写不敏感版本

int tcstrdist(const char *astr, const char *bstr);

         计算两个字符串的编辑距离 ( 实际上就是两个字符串的相似度 )

         算法是通过一个数组模拟矩阵实现的 . 如果需要更详细了解该算法 , 可以搜 (Levenshtein Distance (LD, 来文史特距离 )) 相关资料 .

int tcstrdistutf(const char *astr, const char *bstr);

         计算 UTF-8 编码的字符串的编辑距离

char *tcstrtoupper(char *str);

         将字符串转换成大写

char *tcstrtolower(char *str);

         将字符串转换成小写

char *tcstrtrim(char *str);

         截掉字符串两端的非打印字符

char *tcstrsqzspc(char *str);

         去掉字符串两端非打印字符 , 并且使字符串内部每个单词中间也最多有一个 .

char *tcstrsubchr(char *str, const char *rstr, const char *sstr);

str 中所有的在 rstr 中给出的字符按顺序替换为 sstr 中对应位置的字符 . 实际上就是一个字符表的替换 , 比如 tctrsubchar(“hello world”, “wo”, “-*”) 的返回结果就会是 ”hell* -*rld”, sstr 的长度比 rstr 小时 , 实际上会导致 rstr 这个字符表中后面的部分字符在 sstr 中找不到对照 , 发生这种情况时 , 会把 str 中所有匹配的字符都移除掉 .

int tcstrcntutf(const char *str);

         统计给定的字符串以 utf-8 编码的字符数

char *tcstrcututf(char *str, int num);

         str 按照 utf-8 编码方式截取 num 个字符 , 该函数会对传入的 str 发生效应 ( 改变了它 )

void tcstrutftoucs(const char *str, uint16_t *ary, int *np);

         将给定的 utf-8 编码的 str 字符串以 UCS-2 码转入 ary 数组中 , np 记录数组大小

int tcstrucstoutf(const uint16_t *ary, int num, char *str);

         将给定的 UCS-2 数组转换成一个 utf-8 字符串放入 str, 返回值是该字符串长度 , 参数 num 指定 ary 的大小

TCLIST *tcstrsplit(const char *str, const char *delims);

         将给定的字符串 str delims 作为间隔符分割成一个列表对象

char *tcstrjoin(const TCLIST *list, char delim);

         将给定的列表对象用给定的间隔符 delim 连接成一个字符串

int64_t tcatoi(const char *str);

         把给定的字符串 str 转换成一个数值 , javascript 中的 parseInt 功能类似 . 如果不是有效的整数表达式 , 将返回 0

double tcatof(const char *str);

         tcatoi double 版本 如果不是有效的浮点表达式 , 将返回 0.0

bool tcregexmatch(const char *str, const char *regex);

         正则表达式匹配 , 如果正则以 * 开头 , 则表明是一个大小写不敏感的正则 , 匹配成功返回 true, 否则返回 false;

char *tcregexreplace(const char *str, const char *regex, const char *alt);

         str 中所有匹配正则 regex 的子串都替换成 alt, alt 中可以使用 & 代表整个匹配子串 , /1----/9 代表匹配子组 , 关于正则匹配的语法 , 可以详细查阅正则表达式相关内容 , alt 中的上述语法为后引用 . 如果正则 regex str 中没有匹配 , 将返回 str 的一个拷贝 .

void tcmd5hash(const void *ptr, int size, char *buf);

         对指定的序列化对象获取一个 MD5 hash , 放入 buf , buf 需要 48bytes 或更大的内存空间 .

void tcarccipher(const void *ptr, int size, const void *kbuf, int ksiz, void *obuf);

         ARC4 加密算法对给定的序列化对象加密或解密 , 结果输出到 obuf , obuf 需要提供与 ptr 相同或更大的内存空间 .

double tctime();

         获取当前时间戳 , 精确到微秒

void tccalendar(int64_t t, int jl, int *yearp, int *monp, int *dayp, int *hourp, int *minp, int *secp);

获取指定时间的格林威治日历 , 参数 t 为时间戳 , jl 为时差 , 后面每个参数是计算后用来存储结果的指针 , 分别是年 , , , , ,

void tcdatestrwww(int64_t t, int jl, char *buf);

         根据时间戳 t 和时差 jl 获取一个 W3CDTF 时间格式串放入 buf , buf 需要 48bytes 或更大的内存 (W3CDTF 格式 : "YYYY-MM-DDThh:mm:ddTZD")

void tcdatestrhttp(int64_t t, int jl, char *buf);

         根据时间戳 t 和时差 jl 获取一个 RFC 1123 规范的时间格式串放入 buf , buf 需要 48bytes 或更大内存 (RFC 1123 时间格式 : "Wdy, DD-Mon-YYYY hh:mm:dd TZD")

int64_t tcstrmktime(const char *str);

         通过给定字符串获取一个时间戳 , 该字符串可以是十进制 , 十六进制 , W3CDTF, RFC822(1123) 等格式 , 十进制的时候 , 可以通过增加后缀表明单位 , s 表示秒 , m 表示分 , h 表示小时 , d 表示天 .

int tcjetlag();

         用来获取本地时间的时差

int tcdayofweek(int year, int mon, int day);

         指定年 , , , 返回当前是星期几 , 0 代表星期天 , 6 代表星期六

 

你可能感兴趣的:(算法,api,正则表达式,文档,regex,distance)