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); }