Go to the documentation of this file.
61 __attribute__ ((
format (printf, 1, 2)))
76 #define str_concat(...) _str_concat_private(__VA_ARGS__, NULL)
106 static inline bool streq(
const char *str1,
const char* str2)
109 for (i = 0 ; str1[i] !=
'\0' ; i++) {
110 if (str1[i] != str2[i])
114 return str2[i] ==
'\0';
121 static inline bool strcaseeq(
const char *str1,
const char* str2)
124 for (i = 0 ; str1[i] !=
'\0' ; i++) {
125 if (str1[i] == str2[i])
127 else if (islower(str1[i]) && (str1[i] - 32) == str2[i])
129 else if (isupper(str1[i]) && (str1[i] + 32) == str2[i])
135 return str2[i] ==
'\0';
170 bool str_ends_with(
const char *haystack,
const char *needle);
189 bool str_matches_any(
const char *haystack,
const char **needles,
int num_needles);
205 char *
str_substring(
const char *str,
size_t startidx,
size_t endidx);
213 int str_indexof(
const char *haystack,
const char *needle);
215 static inline int str_contains(
const char *haystack,
const char *needle) {
252 char *
str_replace(
const char *haystack,
const char *needle,
const char *replacement);
295 __attribute__ ((
format (printf, 2, 3)))
char char * vsprintf_alloc(const char *fmt, va_list args)
int str_last_indexof(const char *haystack, const char *needle)
char * str_expand_envs(const char *in)
char * string_feeder_peek_length(string_feeder_t *sf, size_t length)
char * str_tolowercase(char *s)
void str_split_destroy(zarray_t *s)
int str_indexof(const char *haystack, const char *needle)
string_buffer_t * string_buffer_create()
zarray_t * str_split(const char *str, const char *delim)
char string_buffer_pop_back(string_buffer_t *sb)
bool string_feeder_starts_with(string_feeder_t *sf, const char *str)
void string_feeder_require(string_feeder_t *sf, const char *str)
void string_feeder_destroy(string_feeder_t *sf)
void string_buffer_append_string(string_buffer_t *sb, const char *str)
char * string_buffer_to_string(string_buffer_t *sb)
char * string_feeder_next_length(string_feeder_t *sf, size_t length)
char * format(const char *fmt,...)
char * sprintf_alloc(const char *fmt,...) __attribute__((format(printf
static bool streq(const char *str1, const char *str2)
zarray_t * str_split_spaces(const char *str)
char string_feeder_peek(string_feeder_t *sf)
char * str_touppercase(char *s)
bool str_starts_with_any(const char *haystack, const char **needles, int num_needles)
int str_diff_idx(const char *a, const char *b)
char string_feeder_next(string_feeder_t *sf)
char * str_substring(const char *str, size_t startidx, size_t endidx)
char * str_lstrip(char *str)
char * str_rstrip(char *str)
void string_buffer_destroy(string_buffer_t *sb)
void string_buffer_reset(string_buffer_t *sb)
string_feeder_t * string_feeder_create(const char *str)
bool str_ends_with(const char *haystack, const char *needle)
bool str_starts_with(const char *haystack, const char *needle)
void string_buffer_append(string_buffer_t *sb, char c)
static bool strcaseeq(const char *str1, const char *str2)
static int str_contains(const char *haystack, const char *needle)
bool str_matches_any(const char *haystack, const char **needles, int num_needles)
size_t string_buffer_size(string_buffer_t *sb)
void bool string_buffer_ends_with(string_buffer_t *sb, const char *str)
char * _str_concat_private(const char *first,...)
void string_buffer_appendf(string_buffer_t *sb, const char *fmt,...) __attribute__((format(printf
int string_feeder_get_column(string_feeder_t *sf)
char * str_replace(const char *haystack, const char *needle, const char *replacement)
char * str_trim(char *str)
bool string_feeder_has_next(string_feeder_t *sf)
char * str_replace_many(const char *_haystack,...)
int string_feeder_get_line(string_feeder_t *sf)
apriltag
Author(s): Edwin Olson
, Max Krogius
autogenerated on Sun Apr 20 2025 02:08:19