ft_substr.c
1 /* ************************************************************************** */ 2 /* */ 3 /* ::: :::::::: */ 4 /* ft_substr.c :+: :+: :+: */ 5 /* +:+ +:+ +:+ */ 6 /* By: ll-hotel <ll-hotel@student.42lyon.fr> +#+ +:+ +#+ */ 7 /* +#+#+#+#+#+ +#+ */ 8 /* Created: 2023/11/07 20:28:44 by ll-hotel #+# #+# */ 9 /* Updated: 2024/04/17 23:27:14 by ll-hotel ### ########.fr */ 10 /* */ 11 /* ************************************************************************** */ 12 13 #include <stdlib.h> 14 15 char *ft_substr(const char *s, unsigned int start, size_t len) 16 { 17 char *p; 18 size_t i; 19 size_t l; 20 21 l = 0; 22 while (s[l]) 23 l++; 24 len *= start <= l; 25 if (len > l - start) 26 len = l - start; 27 p = malloc(sizeof(char) * (len + 1)); 28 if (!p || !s) 29 return (NULL); 30 i = -1; 31 while (++i < len && s[start + i]) 32 p[i] = s[start + i]; 33 p[i] = 0; 34 return (p); 35 }