-
Notifications
You must be signed in to change notification settings - Fork 0
/
ft_strlcpy.c
65 lines (53 loc) · 2.21 KB
/
ft_strlcpy.c
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
/* ************************************************************************** */
/* */
/* :::::::: */
/* ft_strlcpy.c :+: :+: */
/* +:+ */
/* By: dreijans <dreijans@student.codam.nl> +#+ */
/* +#+ */
/* Created: 2022/10/11 14:38:00 by dreijans #+# #+# */
/* Updated: 2022/11/14 15:15:06 by dreijans ######## odam.nl */
/* */
/* ************************************************************************** */
#include "libft.h"
size_t ft_strlcpy(char *dst, const char *src, size_t dstsize)
{
size_t i;
i = 0;
while (src[i] != '\0' && (i + 1) < dstsize)
{
dst[i] = src[i];
i++;
}
if (i < dstsize)
dst[i] = '\0';
return (ft_strlen(src));
}
/*
copy and concatenate strings
They are designed to be safer, more consistent,
and less error prone replacements for the easily misused functions
take the full size of the destination buffer
and guarantee NUL-termination if there is room.
Note that room for the NUL should be included in dstsize.
copies up to dstsize - 1 characters from the string src to dst,
NUL-terminating the result if dstsize is not 0.
appends string src to the end of dst.
It will append at most dstsize - strlen(dst) - 1 characters.
It will then NUL-terminate, unless dstsize is 0
or the original dst string was longer than dstsize
(in practice this should not happen as it
RETURN
functions return the total length of the string they tried to create.
For strlcpy() that means the length of src.
If the return value is >= dstsize, the output string has been truncated.
It is the caller's responsibility to handle this.
size_t kan niet negatief zijn dus (i +1) ipv (destsize -1)
int main(void)
{
char src[] = "hello";
char dest[20];
printf("%zu\n", ft_strlcpy(dest, src, 5));
printf("%zu\n", strlcpy(dest, src, 5));
}
*/