acl/lib_acl/include/stdlib/acl_stringops.h

53 lines
1.5 KiB
C

#ifndef ACL_STRINGOPS_INCLUDE_H
#define ACL_STRINGOPS_INCLUDE_H
#ifdef __cplusplus
extern "C" {
#endif
#include "acl_define.h"
/**
* 判断给定字符串是否全为数字
* @param str {const char*} 字符串
* @return {int} 0: 否; 1: 是
*/
ACL_API int acl_alldig(const char *str);
/**
* 将多个字符串拼接成一个字符串
* @param arg0 {const char*} 第一个非空字符串
* @param ... 后续的字符串集合,结束符是 NULL
* @return {char*} 结果字符串,不为空, 该字符串需要调用 acl_myfree 释放
*/
ACL_API char *acl_concatenate(const char *arg0,...);
/**
* 从一个全路径的文件名中取得文件名部分,如:
* 从 "/tmp/test.txt" 或 "\\tmp\\test.txt" 中取得 test.txt
* @param path {const char*} 带有路径的文件名,如:"/tmp/test.txt"
* 或 "\\tmp\\test.txt"
* @return {const char*} 文件名,该返回值不需要释放,如果返回的地址
* 为空串(即第一个字节为 '\0') 则说明所给路径不含文件名
*/
ACL_API const char *acl_safe_basename(const char *path);
/**
* 将所给的字符串进行分隔,分别取出 name, value 地址, 输入字符串可以为
* {sp}{name}{sp}={sp}{value}{sp}, 如果分析成功,则将结果分别进行存储,
* 其中 {sp} 字符可以为: 空格, "\t", "\r", "\n"
* @param buf {char*} 输入的字符串, 不能为空
* @param name {char**} 存储结果的地址指针,不能为空
* @param value {char**} 存储结果的地址指针,不能为空
* @return {const char*} 出错原因,如果为空则表示解析成功,否则表示解析失败并返回
* 失败原因
*/
ACL_API const char *acl_split_nameval(char *buf, char **name, char **value);
#ifdef __cplusplus
}
#endif
#endif