95 lines
2.1 KiB
C
95 lines
2.1 KiB
C
/* ************************************************************************** */
|
|
/* */
|
|
/* ::: :::::::: */
|
|
/* ft_strjoin.c :+: :+: :+: */
|
|
/* +:+ +:+ +:+ */
|
|
/* By: whaffman <whaffman@student.codam.nl> +#+ +:+ +#+ */
|
|
/* +#+#+#+#+#+ +#+ */
|
|
/* Created: 2024/06/17 10:17:32 by whaffman #+# #+# */
|
|
/* Updated: 2024/06/20 13:57:12 by whaffman ### ########.fr */
|
|
/* */
|
|
/* ************************************************************************** */
|
|
|
|
#include <stdlib.h>
|
|
#include <string.h>
|
|
#include <stdio.h>
|
|
|
|
char *ft_strcat(char *dest, char *src)
|
|
{
|
|
char *odest;
|
|
|
|
odest = dest;
|
|
while (*dest)
|
|
dest++;
|
|
while (*src)
|
|
*dest++ = *src++;
|
|
*dest = '\0';
|
|
return (odest);
|
|
}
|
|
|
|
int ft_strlen(char *str)
|
|
{
|
|
int i;
|
|
|
|
i = 0;
|
|
while (str[i])
|
|
i++;
|
|
return (i);
|
|
}
|
|
|
|
int ft_strjoin_len(int size, char **strs, char *sep)
|
|
{
|
|
int result;
|
|
int i;
|
|
|
|
i = 0;
|
|
result = 0;
|
|
if (size <= 0)
|
|
return (0);
|
|
while (i < size)
|
|
{
|
|
result += ft_strlen(strs[i]);
|
|
i++;
|
|
}
|
|
result += (size - 1) * ft_strlen(sep);
|
|
return (result);
|
|
}
|
|
|
|
char *ft_strjoin(int size, char **strs, char *sep)
|
|
{
|
|
char *result;
|
|
int length;
|
|
int i;
|
|
|
|
i = 0;
|
|
length = ft_strjoin_len(size, strs, sep) + 1;
|
|
result = (char *) malloc(length * sizeof(char));
|
|
if (!result)
|
|
return ((void *) 0);
|
|
*result = '\0';
|
|
while (i < size)
|
|
{
|
|
ft_strcat(result, strs[i]);
|
|
if (i != size - 1 && ft_strlen(sep) > 0)
|
|
ft_strcat(result, sep);
|
|
i++;
|
|
}
|
|
return (result);
|
|
}
|
|
/*
|
|
int main(void)
|
|
{
|
|
char *strs[3];
|
|
char str1[] = "HAllo";
|
|
char str2[] = "";
|
|
char str3[] = "mwaah";
|
|
char sep[] = ", ";
|
|
|
|
strs[0] = &str1[0];
|
|
strs[1] = &str2[0];
|
|
strs[2] = &str3[0];
|
|
printf("%s", ft_strjoin(0, strs, sep));
|
|
printf("DONE!");
|
|
}
|
|
*/
|