minishell
ft_strndup.c
Go to the documentation of this file.
1
/* ************************************************************************** */
2
/* */
3
/* ::: :::::::: */
4
/* ft_strndup.c :+: :+: :+: */
5
/* +:+ +:+ +:+ */
6
/* By: kfujita <kfujita@student.42tokyo.jp> +#+ +:+ +#+ */
7
/* +#+#+#+#+#+ +#+ */
8
/* Created: 2022/04/23 22:40:31 by kfujita #+# #+# */
9
/* Updated: 2022/04/26 00:24:59 by kfujita ### ########.fr */
10
/* */
11
/* ************************************************************************** */
12
13
#include <stddef.h>
14
#include <stdlib.h>
15
#include "../ft_math/ft_math.h"
16
#include "
ft_string.h
"
17
18
char
*
ft_strndup
(
const
char
*s1,
size_t
n)
19
{
20
size_t
s1_len;
21
char
*p_ret;
22
char
*p_ret_top;
23
24
if
(n <= 0)
25
return
(
ft_strdup
(
""
));
26
s1_len =
ft_minp
(
ft_strlen
(s1), n);
27
p_ret = (
char
*)malloc(s1_len + 1);
28
p_ret_top = p_ret;
29
if
(p_ret == NULL)
30
return
(NULL);
31
while
(s1_len-- > 0)
32
*p_ret++ = *s1++;
33
*p_ret =
'\0'
;
34
return
(p_ret_top);
35
}
ft_minp
size_t ft_minp(size_t a, size_t b)
Definition:
ft_min.c:32
ft_strdup
char * ft_strdup(const char *s1)
Definition:
ft_strdup.c:16
ft_string.h
ft_strlen
size_t ft_strlen(const char *s)
Definition:
ft_strlen.c:15
ft_strndup
char * ft_strndup(const char *s1, size_t n)
Definition:
ft_strndup.c:18
libft
ft_string
ft_strndup.c
Generated by
1.9.1