Files
42_INT_01_libft/srcs/part2/ft_strjoin.c
2019-12-04 16:56:09 +01:00

78 lines
1.9 KiB
C

/* ************************************************************************** */
/* */
/* ::: :::::::: */
/* ft_strjoin.c :+: :+: :+: */
/* +:+ +:+ +:+ */
/* By: hulamy <marvin@42.fr> +#+ +:+ +#+ */
/* +#+#+#+#+#+ +#+ */
/* Created: 2019/11/25 14:01:26 by hulamy #+# #+# */
/* Updated: 2019/12/04 16:55:43 by hulamy ### ########.fr */
/* */
/* ************************************************************************** */
/*
** create a new string by concatenating the two strings s1 and s2
*/
/*
** #include <libc.h>
**
** size_t ft_strlen(const char *str)
** {
** size_t i;
**
** i = 0;
** while (str[i])
** i++;
** return (i);
** }
**
** char *ft_strjoin(char const *s1, char const *s2);
**
** int main(int ac, char **av)
** {
** char *s1;
** char *s2;
** char *str;
**
** if (ac != 3)
** return (0);
** s1 = strdup(av[1]);
** s2 = strdup(av[2]);
** str = ft_strjoin(s1, s2);
** printf("%s\n", str);
** return (0);
** }
*/
#include "libft.h"
static char *ft_doit(char const *s1, char const *s2, char *dest)
{
int j;
int i;
j = 0;
i = 0;
while (s1[j] != '\0')
dest[i++] = s1[j++];
j = 0;
while (s2[j] != '\0')
dest[i++] = s2[j++];
dest[i] = '\0';
return (dest);
}
char *ft_strjoin(char const *s1, char const *s2)
{
char *str;
if (!s1 || !s2)
return (NULL);
if (!(str = (char *)malloc(sizeof(char) *
(ft_strlen(s1) + ft_strlen(s2) + 1))))
return (NULL);
str = ft_doit(s1, s2, str);
return (str);
}