ft_substr.c
1 /* ************************************************************************** */ 2 /* */ 3 /* ::: :::::::: */ 4 /* ft_substr.c :+: :+: :+: */ 5 /* +:+ +:+ +:+ */ 6 /* By: gychoi <marvin@42.fr> +#+ +:+ +#+ */ 7 /* +#+#+#+#+#+ +#+ */ 8 /* Created: 2022/07/09 15:52:19 by gychoi #+# #+# */ 9 /* Updated: 2022/07/15 15:02:21 by gychoi ### ########.fr */ 10 /* */ 11 /* ************************************************************************** */ 12 13 #include "libft.h" 14 15 char *ft_substr(char const *s, unsigned int start, size_t len) 16 { 17 char *substr; 18 size_t slen; 19 size_t i; 20 21 if (s == NULL) 22 return (NULL); 23 slen = ft_strlen(s); 24 if (slen < len) 25 len = slen; 26 if (slen <= start) 27 substr = ft_calloc(1, sizeof(char)); 28 else 29 substr = ft_calloc(len + 1, sizeof(char)); 30 if (!substr) 31 return (NULL); 32 i = 0; 33 if (slen > start) 34 { 35 while (i < len && s[start + i] != '\0') 36 { 37 substr[i] = s[start + i]; 38 i++; 39 } 40 } 41 return (substr); 42 }