char *zbx_string_replace(const char *str, const char *sub_str1, const char *sub_str2);
int zbx_is_ascii_string(const char *str);
int zbx_rtrim(char *str, const char *charlist);
void zbx_ltrim(char *str, const char *charlist);
void zbx_lrtrim(char *str, const char *charlist);
void zbx_remove_chars(char *str, const char *charlist);
char *zbx_str_printable_dyn(const char *text);
#define ZBX_WHITESPACE " \t\r\n"
void zbx_del_zeros(char *s);
size_t zbx_get_escape_string_len(const char *src, const char *charlist);
char *zbx_dyn_escape_string(const char *src, const char *charlist);
int zbx_escape_string(char *dst, size_t len, const char *src, const char *charlist);
int zbx_str_in_list(const char *list, const char *value, char delimiter);
int zbx_str_n_in_list(const char *list, const char *value, size_t len, char delimiter);
char *zbx_str_linefeed(const char *src, size_t maxline, const char *delim);
void zbx_strarr_init(char ***arr);
void zbx_strarr_add(char ***arr, const char *entry);
void zbx_strarr_free(char ***arr);
void zbx_strcpy_alloc(char **str, size_t *alloc_len, size_t *offset, const char *src);
void zbx_chrcpy_alloc(char **str, size_t *alloc_len, size_t *offset, char c);
void zbx_str_memcpy_alloc(char **str, size_t *alloc_len, size_t *offset, const char *src, size_t n);
void zbx_strquote_alloc_opt(char **str, size_t *str_alloc, size_t *str_offset, const char *value_str, int option);
void zbx_strsplit_first(const char *src, char delimiter, char **left, char **right);
void zbx_strsplit_last(const char *src, char delimiter, char **left, char **right);
#define zbx_strscpy(x, y) zbx_strlcpy(x, y, sizeof(x))
#define zbx_strscat(x, y) zbx_strlcat(x, y, sizeof(x))
void zbx_strlcat(char *dst, const char *src, size_t siz);
size_t zbx_strlcpy_utf8(char *dst, const char *src, size_t size);
char *zbx_strdcat(char *dest, const char *src);