#include <stdlib.h>
#include <unistd.h>
#include <stdio.h>
int ft_strlen(char *str)
{
int i;
i = 0;
while (str[i])
{
i++;
}
return (i);
}
int ft_strlen_sum(int size, char **strs)
{
int i;
int sum;
sum = 0;
i = 1;
while (i < size)
{
sum += ft_strlen(strs[i]);
i++;
}
return (sum);
}
char *ft_strcat(char *s1, char *s2)
{
int i;
int j;
i = 0;
while (s1[i])
{
i++;
}
j = 0;
while (s2[j])
{
s1[i] = s2[j];
i++;
j++;
}
return (s1);
}
char *ft_strjoin(int size, char **strs, char *sep)
{
int i;
char *tab;
int lengthsum;
lengthsum = ft_strlen_sum(size, strs);
lengthsum += ft_strlen(sep) * (size - 1);
tab
= (char *)malloc(sizeof(char) * lengthsum
); if (size == 0)
return (tab);
i = 1;
while (i < size)
{
ft_strcat(tab, strs[i]);
if (i != size - 1)
ft_strcat(tab, sep);
i++;
}
return (tab);
}
int main(int argc, char *argv[])
{
char *str;
int i;
char sep[2];
sep[0] = ' ';
sep[1] = ',';
i = 0;
str = ft_strjoin(argc, argv, sep);
printf("%d\n", ft_strlen
(str
)); write(1, str, ft_strlen(str));
}
I2luY2x1ZGUgPHN0ZGxpYi5oPgojaW5jbHVkZSA8dW5pc3RkLmg+CiNpbmNsdWRlIDxzdGRpby5oPgoKaW50CQlmdF9zdHJsZW4oY2hhciAqc3RyKQp7CglpbnQgaTsKCglpID0gMDsKCXdoaWxlIChzdHJbaV0pCgl7CgkJaSsrOwoJfQoJcmV0dXJuIChpKTsKfQoKaW50CQlmdF9zdHJsZW5fc3VtKGludCBzaXplLCBjaGFyICoqc3RycykKewoJaW50CWk7CglpbnQJc3VtOwoKCXN1bSA9IDA7CglpID0gMTsKCXdoaWxlIChpIDwgc2l6ZSkKCXsKCQlzdW0gKz0gZnRfc3RybGVuKHN0cnNbaV0pOwoJCWkrKzsKCX0KCXJldHVybiAoc3VtKTsKfQoKY2hhcgkqZnRfc3RyY2F0KGNoYXIgKnMxLCBjaGFyICpzMikKewoJaW50CWk7CglpbnQJajsKCglpID0gMDsKCXdoaWxlIChzMVtpXSkKCXsKCQlpKys7Cgl9CglqID0gMDsKCXdoaWxlIChzMltqXSkKCXsKCQlzMVtpXSA9IHMyW2pdOwoJCWkrKzsKCQlqKys7Cgl9CglyZXR1cm4gKHMxKTsKfQoKY2hhcgkqZnRfc3Ryam9pbihpbnQgc2l6ZSwgY2hhciAqKnN0cnMsIGNoYXIgKnNlcCkKewoJaW50CQlpOwoJY2hhcgkqdGFiOwoJaW50CQlsZW5ndGhzdW07CgoJbGVuZ3Roc3VtID0gZnRfc3RybGVuX3N1bShzaXplLCBzdHJzKTsKCWxlbmd0aHN1bSArPSBmdF9zdHJsZW4oc2VwKSAqIChzaXplIC0gMSk7Cgl0YWIgPSAoY2hhciAqKW1hbGxvYyhzaXplb2YoY2hhcikgKiBsZW5ndGhzdW0pOwoJaWYgKHNpemUgPT0gMCkKCQlyZXR1cm4gKHRhYik7CglpID0gMTsKCXdoaWxlIChpIDwgc2l6ZSkKCXsKCQlmdF9zdHJjYXQodGFiLCBzdHJzW2ldKTsKCQlpZiAoaSAhPSBzaXplIC0gMSkKCQkJZnRfc3RyY2F0KHRhYiwgc2VwKTsKCQlpKys7Cgl9CglyZXR1cm4gKHRhYik7Cn0KCmludAkJbWFpbihpbnQgYXJnYywgY2hhciAqYXJndltdKQp7CgljaGFyCSpzdHI7CglpbnQJCWk7CgljaGFyCXNlcFsyXTsKCglzZXBbMF0gPSAnICc7CglzZXBbMV0gPSAnLCc7CglpID0gMDsKCXN0ciA9IGZ0X3N0cmpvaW4oYXJnYywgYXJndiwgc2VwKTsKCXByaW50ZigiJWRcbiIsIGZ0X3N0cmxlbihzdHIpKTsKCXdyaXRlKDEsIHN0ciwgZnRfc3RybGVuKHN0cikpOwp9