/* ************************************************************************** */ /* */ /* ::: :::::::: */ /* get_next_line_utils.c :+: :+: :+: */ /* +:+ +:+ +:+ */ /* By: abelghou +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2024/07/21 19:34:18 by abelghou #+# #+# */ /* Updated: 2024/07/23 20:06:41 by abelghou ### ########.fr */ /* */ /* ************************************************************************** */ #include "../include/get_next_line.h" char *ft_substr(char const *s, unsigned int start, size_t len) { size_t i; size_t j; char *str; str = (char *)malloc(sizeof(*s) * (len + 1)); if (str == 0) return (NULL); i = 0; j = 0; while (s[i]) { if (i >= start && j < len) { str[j] = s[i]; j++; } i++; } str[j] = '\0'; return (str); } int ft_strlen_g(const char *str) { int i; i = 0; while (str[i]) i++; return (i); } char *ft_strchr_gnl(const char *s, int i) { while (*s) { if (*s == i) return ((char *)s); s++; } if (i == '\0') return ((char *)s); return (0); } char *ft_strdup_g(const char *s) { int i; int j; char *str; i = 0; j = ft_strlen_g(s); str = (char *)malloc(sizeof(*str) * (j + 1)); if (!str) return (NULL); while (i < j) { str[i] = s[i]; i++; } str[i] = '\0'; return (str); } char *ft_strjoin(char const *s1, char const *s2) { int i; int j; char *str; i = 0; j = 0; str = (char *)malloc(sizeof(char) * (ft_strlen_g(s1) \ + ft_strlen_g(s2) + 1)); if (str == NULL) return (NULL); while (s1[i] != '\0') { str[i] = s1[i]; i++; } while (s2[j] != '\0') { str[i + j] = s2[j]; j++; } str[i + j] = '\0'; return (str); }