aboutsummaryrefslogtreecommitdiff
path: root/c03/ex05
diff options
context:
space:
mode:
Diffstat (limited to 'c03/ex05')
-rw-r--r--c03/ex05/ft_strlcat.c31
1 files changed, 15 insertions, 16 deletions
diff --git a/c03/ex05/ft_strlcat.c b/c03/ex05/ft_strlcat.c
index 5cacc4d..1e7f9dc 100644
--- a/c03/ex05/ft_strlcat.c
+++ b/c03/ex05/ft_strlcat.c
@@ -6,7 +6,7 @@
/* By: cacharle <charles.cabergs@gmail.com> +#+ +:+ +#+ */
/* +#+#+#+#+#+ +#+ */
/* Created: 2019/07/05 15:43:34 by cacharle #+# #+# */
-/* Updated: 2019/07/06 07:12:28 by cacharle ### ########.fr */
+/* Updated: 2019/07/07 11:08:08 by cacharle ### ########.fr */
/* */
/* ************************************************************************** */
@@ -15,30 +15,29 @@ unsigned int my_strlen(char *str)
int counter;
counter = 0;
- while (*str != '\0')
- {
+ while (str[counter])
counter++;
- str++;
- }
return (counter);
}
unsigned int ft_strlcat(char *dest, char *src, unsigned int size)
{
unsigned int i;
- unsigned int len_src;
- unsigned int len_dest;
+ unsigned int dest_len;
+ unsigned int src_len;
- len_src = my_strlen(src);
- len_dest = my_strlen(dest);
- if (!len_src)
- return (len_dest);
- i = len_dest - 1;
- while (i < size - len_dest - 1 && src[i])
+ dest_len = my_strlen(dest);
+ src_len = my_strlen(src);
+ if (size == 0)
+ return (src_len);
+ i = dest_len;
+ while (i < size - 1 && src[i - dest_len])
{
- dest[i] = src[i];
+ dest[i] = src[i - dest_len];
i++;
}
- dest[i] = '\0';
- return (len_src + len_dest);
+ if (dest[size - 1] != '\0')
+ return (src_len + size);
+ dest[size - 1] = '\0';
+ return (dest_len + src_len);
}