minishell
ft_strtrim.c
Go to the documentation of this file.
1 /* ************************************************************************** */
2 /* */
3 /* ::: :::::::: */
4 /* ft_strtrim.c :+: :+: :+: */
5 /* +:+ +:+ +:+ */
6 /* By: kfujita <kfujita@student.42tokyo.jp> +#+ +:+ +#+ */
7 /* +#+#+#+#+#+ +#+ */
8 /* Created: 2022/04/18 05:00:01 by kfujita #+# #+# */
9 /* Updated: 2022/04/25 23:30:14 by kfujita ### ########.fr */
10 /* */
11 /* ************************************************************************** */
12 
13 #include <stddef.h>
14 #include "ft_string.h"
15 
16 char *ft_strtrim(char const *s1, char const *set)
17 {
18  size_t s1_len;
19  const char *s1_end;
20 
21  if (s1 == NULL)
22  return (NULL);
23  if (set == NULL || *s1 == '\0')
24  return (ft_strdup(s1));
25  s1_len = ft_strlen(s1);
26  s1_end = s1 + s1_len - 1;
27  while (*s1 != '\0' && ft_strchr(set, *s1) != NULL)
28  s1++;
29  if (*s1 == '\0')
30  return (ft_strdup(""));
31  while (ft_strchr(set, *s1_end) != NULL)
32  s1_end--;
33  return (ft_strndup(s1, (size_t)s1_end - (size_t)s1 + 1));
34 }
char * ft_strchr(const char *s, int c)
Definition: ft_strchr.c:15
char * ft_strdup(const char *s1)
Definition: ft_strdup.c:16
char * ft_strndup(const char *s1, size_t n)
Definition: ft_strndup.c:18
size_t ft_strlen(const char *s)
Definition: ft_strlen.c:15
char * ft_strtrim(char const *s1, char const *set)
Definition: ft_strtrim.c:16