/**
 * @file string_utils.h
 * @brief 字符串工具函数声明
 */

#ifndef __STRING_UTILS_H__
#define __STRING_UTILS_H__

#include <stddef.h>
#include <stdbool.h>

#ifdef __cplusplus
extern "C" {
#endif

/**
 * @brief 复制字符串 (类似 strdup)
 */
char *str_utils_strdup(const char *src);

/**
 * @brief 判断字符串是否以指定前缀开头
 */
bool str_utils_starts_with(const char *str, const char *prefix);

/**
 * @brief 判断字符串是否以指定后缀结尾
 */
bool str_utils_ends_with(const char *str, const char *suffix);

/**
 * @brief URL编码
 * @return 编码后的长度, 失败返回-1
 */
int str_utils_url_encode(const char *src, char *dst, size_t dst_size);

/**
 * @brief 去除字符串首尾空白字符 (原地修改)
 */
void str_utils_trim(char *str);

#ifdef __cplusplus
}
#endif

#endif /* __STRING_UTILS_H__ */
