aboutsummaryrefslogtreecommitdiffstats
path: root/src/ft_strtrim.c
blob: e9fa3ebe69bdeaeb7cd433c7c36d45e486755cf5 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
#include "libft.h"
#include <stdlib.h>

char *
ft_strtrim (char const *s1, char const *set)
{
  size_t start;
  size_t end;
  size_t len;
  char *trimmed;

  start = 0;
  while (s1[start] && ft_strchr (set, s1[start]))
    start++;
  end = ft_strlen (s1);
  while (end > start && ft_strchr (set, s1[end - 1]))
    end--;
  len = end - start;
  trimmed = malloc (len + 1);
  if (!trimmed)
    return (NULL);
  ft_memcpy (trimmed, s1 + start, len);
  trimmed[len] = '\0';
  return (trimmed);
}