/* ************************************************************************** */ /* */ /* ::: :::::::: */ /* ft_strdup.c :+: :+: :+: */ /* +:+ +:+ +:+ */ /* By: whaffman +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2024/06/13 16:46:42 by whaffman #+# #+# */ /* Updated: 2024/06/17 09:55:19 by whaffman ### ########.fr */ /* */ /* ************************************************************************** */ #include #include #include int ft_strlen(char *str) { int i; i = 0; while (*str++) i++; return (i); } char *ft_strncpy(char *dest, char *src, unsigned int n) { unsigned int i; i = 0; while (src[i] != '\0' && i < n) { dest[i] = src[i]; i++; } while (i < n) { dest[i] = '\0'; i++; } return (dest); } char *ft_strdup(char *src) { int str_size; char *dest; str_size = ft_strlen(src) + 1; dest = (char *) malloc(str_size * sizeof(char)); if (dest) ft_strncpy(dest, src, str_size); return (dest); } #ifdef DEBUG int main(void) { char src[7]; char *dest; ft_strncpy(&src[0], "hallo", 7); dest = ft_strdup(&src[0]); printf("%s: %s", &src[0], dest); } #endif