51 lines
879 B
C
51 lines
879 B
C
static i32
|
|
get_start(const char *str, char const *set) {
|
|
i32 check;
|
|
|
|
for (i32 i = 0; str[i]; i++) {
|
|
check = 0;
|
|
for (i32 y = 0; set[y]; y++)
|
|
if (str[i] == set[y])
|
|
check = 1;
|
|
if (check == 0)
|
|
return (i);
|
|
}
|
|
return (0);
|
|
}
|
|
|
|
static i32
|
|
get_end(const char *str, char const *set) {
|
|
i32 check;
|
|
|
|
for (i32 i = ft_strlen(str) - 1; i > 0; i--) {
|
|
check = 0;
|
|
for (i32 y = 0; set[y]; y++)
|
|
if (str[i] == set[y])
|
|
check = 1;
|
|
if (check == 0)
|
|
return (i + 1);
|
|
}
|
|
return (0);
|
|
}
|
|
|
|
char *
|
|
ft_strtrim(char const *s1, char const *set) {
|
|
char *str;
|
|
|
|
if (s1 == NULL || set == NULL)
|
|
return (NULL);
|
|
i32 start = get_start(s1, set);
|
|
i32 end = get_end(s1, set);
|
|
str = malloc(end - start + 1);
|
|
if (str == NULL)
|
|
return (NULL);
|
|
i32 i = 0;
|
|
for (; start < end; i++) {
|
|
str[i] = s1[start];
|
|
i++;
|
|
start++;
|
|
}
|
|
str[i] = '\0';
|
|
return (str);
|
|
}
|