get_next_line/get_next_line_utils.c
Etienne Rey-bethbeder c3e321b3ab Ajout get_next_line
2022-11-16 13:32:26 +01:00

105 lines
2.1 KiB
C

/* ************************************************************************** */
/* */
/* ::: :::::::: */
/* get_next_line_utils.c :+: :+: :+: */
/* +:+ +:+ +:+ */
/* By: erey-bet <marvin@42.fr> +#+ +:+ +#+ */
/* +#+#+#+#+#+ +#+ */
/* Created: 2022/11/07 17:19:41 by erey-bet #+# #+# */
/* Updated: 2022/11/07 17:19:42 by erey-bet ### ########.fr */
/* */
/* ************************************************************************** */
#include "get_next_line.h"
void *ft_calloc(size_t nitems, size_t size)
{
size_t i;
char *tmp;
if (nitems == 0 || size == 0)
return (malloc(0));
if (nitems * size < nitems)
return (NULL);
tmp = malloc(nitems * size);
if (tmp == NULL)
return (NULL);
i = 0;
while (i < nitems * size)
{
tmp[i] = '\0';
i++;
}
return (tmp);
}
size_t ft_strlen(const char *str)
{
int i;
if (str == NULL)
return (0);
i = 0;
while (str[i] != '\0')
i++;
return (i);
}
int ft_strchr(const char *str, int search)
{
int i;
i = 0;
while (str[i] || str[i] == (unsigned char)search)
{
if (str[i] == (unsigned char)search)
return (i);
i++;
}
return (-1);
}
void ft_strlcpy(char *dest, const char *src, size_t size)
{
size_t i;
i = 0;
if (!size || !dest || !src)
return ;
while (i < size - 1 && src[i] != '\0')
{
dest[i] = src[i];
i++;
}
dest[i] = '\0';
}
void *ft_realloc(void *ptr, size_t new_size)
{
char *str;
char *p;
int i;
i = -1;
p = ptr;
str = ft_calloc(ft_strlen(p) + 1, 1);
while (p[++i])
str[i] = p[i];
str[i] = '\0';
free(ptr);
p = ft_calloc(new_size, 1);
if (p == NULL)
return (NULL);
i = 0;
while (str[i])
{
p[i] = str[i];
i++;
}
p[i] = '\0';
ptr = p;
free(str);
str = NULL;
return (ptr);
}