piscine/c07/ex00/ft_strdup.c
Willem Haffmans 607ce08c18 all
2024-09-10 00:18:01 +02:00

70 lines
1.6 KiB
C

/* ************************************************************************** */
/* */
/* ::: :::::::: */
/* ft_strdup.c :+: :+: :+: */
/* +:+ +:+ +:+ */
/* By: whaffman <whaffman@student.codam.nl> +#+ +:+ +#+ */
/* +#+#+#+#+#+ +#+ */
/* Created: 2024/06/13 16:46:42 by whaffman #+# #+# */
/* Updated: 2024/06/17 09:55:19 by whaffman ### ########.fr */
/* */
/* ************************************************************************** */
#include <stdlib.h>
#include <stdio.h>
#include <string.h>
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