/* ************************************************************************** */ /* */ /* ::: :::::::: */ /* get_next_line_utils.c :+: :+: :+: */ /* +:+ +:+ +:+ */ /* By: kcolin +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2024/11/01 12:31:58 by kcolin #+# #+# */ /* Updated: 2024/11/01 12:32:00 by kcolin ### ########.fr */ /* */ /* ************************************************************************** */ #include "get_next_line.h" #include char *ft_strchr(const char *s, int c) { size_t i; i = 0; while (s[i] != '\0') { if (s[i] == (char)c) return ((char *)s + i); i++; } if ((char)c == '\0') return ((char *)s + i); return (0); } size_t ft_strlen(const char *s) { size_t i; i = 0; while (s[i] != '\0') i++; return (i); } size_t ft_strlcpy(char *dst, const char *src, size_t size) { size_t i; i = 0; while (src[i] != 0) { if (i < size) dst[i] = src[i]; i++; } if (size > 0) { if (size - 1 > i) dst[i] = '\0'; else dst[size - 1] = '\0'; } return (i); } size_t ft_strlcat(char *dst, const char *src, size_t size) { size_t dst_len; size_t src_len; size_t i; dst_len = 0; while (dst[dst_len] != '\0') dst_len++; src_len = 0; while (src[src_len] != '\0') src_len++; if (size <= dst_len) return (size + src_len); i = 0; while (src[i] != '\0' && i < size - dst_len - 1) { dst[dst_len + i] = src[i]; i++; } dst[dst_len + i] = '\0'; return (dst_len + src_len); } char *ft_strjoin_free_s1(char const *s1, char const *s2) { char *out; size_t len; len = ft_strlen(s1) + ft_strlen(s2) + 1; out = malloc(len); if (out == NULL) { free((void *)s1); return (NULL); } ft_strlcpy(out, s1, len); ft_strlcat(out, s2, len); free((void *)s1); return (out); }