C: Strings
Starts with prefix
bool str_starts_with(const char *s, const char *prefix) {
return strncmp(s, prefix, strlen(prefix)) == 0;
}
Ends with suffix
bool str_ends_with(const char *s, const char *suffix) {
size_t s_size = strlen(s);
size_t suffix_size = strlen(suffix);
return (suffix_size > s_size) ? false : strcmp(s + s_size - suffix_size, suffix) == 0;
}
Concatenation (with heap allocation)
char *str_concat(const char *s, const char *suffix) {
size_t s_size = strlen(s);
size_t suffix_size = strlen(suffix);
char *result = malloc(s_size + suffix_size + 1);
if (result == NULL)
return NULL;
strcpy(result, s);
strcpy(result + s_size, suffix);
return result;
}