#include <stdio.h>
#include <string.h>
unsigned int ft_strlen (char *str)
{
unsigned int i;
i = 0;
while (str[i] != '\0')
i++;
return i;
}
unsigned int ft_strlcat(char *dest, char *src, unsigned int size)
{
unsigned int i;
i = 0;
if (size <= ft_strlen(dest))
return (ft_strlen(src) + size);
while (dest[i] != '\0' && i < (size - 1) )
i++;
while (i < (size - 1) && *src)
{
dest[i] = *src;
src++;
i++;
}
dest[i] = '\0';
return (ft_strlen(dest) + ft_strlen(src));
}
int main(void) {
char foo_src[7] = "12345";
char foo_dest[9] = "abcde";
printf("%d\n", ft_strlcat
(foo_dest
, foo_src
, 4)); ft_strlcat(foo_dest, foo_src, 2);
//strlcat(foo_dest, foo_src, 10);
return 0;
}
I2luY2x1ZGUgPHN0ZGlvLmg+CiNpbmNsdWRlIDxzdHJpbmcuaD4KCnVuc2lnbmVkIGludCBmdF9zdHJsZW4gKGNoYXIgKnN0cikKewogIHVuc2lnbmVkIGludCBpOwoKICBpID0gMDsKICB3aGlsZSAoc3RyW2ldICE9ICdcMCcpCiAgICBpKys7CiAgcmV0dXJuIGk7Cn0KCnVuc2lnbmVkIGludCBmdF9zdHJsY2F0KGNoYXIgKmRlc3QsIGNoYXIgKnNyYywgdW5zaWduZWQgaW50IHNpemUpCnsKICB1bnNpZ25lZCBpbnQgICAgaTsKCiAgaSA9IDA7CiAgaWYgKHNpemUgPD0gZnRfc3RybGVuKGRlc3QpKQogICAgcmV0dXJuIChmdF9zdHJsZW4oc3JjKSArIHNpemUpOwogIHdoaWxlIChkZXN0W2ldICE9ICdcMCcgJiYgaSA8IChzaXplIC0gMSkgKQogICAgaSsrOwogIHdoaWxlIChpIDwgKHNpemUgLSAxKSAmJiAqc3JjKQogIHsKICAgIGRlc3RbaV0gPSAqc3JjOwogICAgc3JjKys7CiAgICBpKys7CiAgfQogIGRlc3RbaV0gPSAnXDAnOwogIHJldHVybiAoZnRfc3RybGVuKGRlc3QpICsgZnRfc3RybGVuKHNyYykpOwp9CgoKaW50IG1haW4odm9pZCkgewogIGNoYXIgZm9vX3NyY1s3XSA9ICIxMjM0NSI7CiAgY2hhciBmb29fZGVzdFs5XSA9ICJhYmNkZSI7CgogIHByaW50ZigiJWRcbiIsIGZ0X3N0cmxjYXQoZm9vX2Rlc3QsIGZvb19zcmMsIDQpKTsKICBmdF9zdHJsY2F0KGZvb19kZXN0LCBmb29fc3JjLCAyKTsKICAvL3N0cmxjYXQoZm9vX2Rlc3QsIGZvb19zcmMsIDEwKTsKICBwcmludGYoIiVzXG4iLCBmb29fZGVzdCk7CgogIHJldHVybiAwOwp9