/* ************************************************************************** */ /* */ /* ::: :::::::: */ /* get_next_line_utils.c :+: :+: :+: */ /* +:+ +:+ +:+ */ /* By: hexplor +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2023/12/20 14:34:32 by hexplor #+# #+# */ /* Updated: 2023/12/26 15:10:24 by hexplor ### ########.fr */ /* */ /* ************************************************************************** */ #include "get_next_line.h" size_t gnl_strlen(char *s) { size_t i; i = 0; if (!s) return (0); while (s[i] != '\0') i++; return (i); } char *gnl_strchr(char *s, int c) { int i; i = 0; if (!s) return (0); if (c == '\0') return ((char *)&s[gnl_strlen(s)]); while (s[i] != '\0') { if (s[i] == (char) c) return ((char *)&s[i]); i++; } return (0); } char *gnl_strjoin(char *s1, char *s2) { size_t i; size_t j; char *str; if (!s1) { s1 = (char *)malloc(1 * sizeof(char)); s1[0] = '\0'; } if (!s1 || !s2) return (NULL); str = malloc(sizeof(char) * ((gnl_strlen(s1) + gnl_strlen(s2)) + 1)); if (str == NULL) return (NULL); i = -1; j = 0; if (s1) while (s1[++i] != '\0') str[i] = s1[i]; while (s2[j] != '\0') str[i++] = s2[j++]; str[gnl_strlen(s1) + gnl_strlen(s2)] = '\0'; free(s1); return (str); }