/* Libft Copyright (C) 2026 yctct This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see . */ #include "libft.h" char *ft_substr(char const *s, unsigned int start, size_t len) { char *ptr; size_t s_len; size_t ptr_len; if (!s) return (NULL); s_len = ft_strlen(s); if (s_len <= start) return (ft_strdup("")); else if (s_len > start + len) ptr_len = len; else ptr_len = s_len - start; ptr = malloc(ptr_len + 1); ft_strlcpy(ptr, &s[start], ptr_len + 1); return (ptr); } /* #include int main(void) { char s[] = "lorem ipsum dolor sit amet"; char *ptr; ptr = ft_substr(s, 6, 6); printf("%s\n", ptr); free(ptr); printf("%s\n", ft_substr("", 0, 1)); printf("%s\n", ft_substr(s, 15, 1)); printf("%s\n", ft_substr(s, 0, 10)); printf("%s\n", ft_substr(s, 7, 10)); printf("%s\n", ft_substr(s, 7, 0)); printf("%s\n", ft_substr(s, 0, 0)); printf("%s\n", ft_substr(s, 400, 20)); } */