Skip to content

Commit f18f047

Browse files
committed
join free and 4
1 parent eaee474 commit f18f047

File tree

2 files changed

+60
-2
lines changed

2 files changed

+60
-2
lines changed

libft/first_libft.h

+4-1
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
/* By: cviegas <[email protected]> +#+ +:+ +#+ */
77
/* +#+#+#+#+#+ +#+ */
88
/* Created: 2023/11/06 15:33:49 by cviegas #+# #+# */
9-
/* Updated: 2024/02/02 19:02:26 by cviegas ### ########.fr */
9+
/* Updated: 2024/03/01 18:31:05 by cviegas ### ########.fr */
1010
/* */
1111
/* ************************************************************************** */
1212

@@ -50,6 +50,9 @@ char *ft_strdup(const char *s);
5050
// DEUXIEME PARTIE
5151
char *ft_substr(char const *s, unsigned int start, size_t len);
5252
char *ft_strjoin(char const *s1, char const *s2);
53+
char *ft_strjoin_free(char *s1, char *s2);
54+
char *ft_strjoin_4(char const *s1, char const *s2,
55+
char const *s3, char const *s4);
5356
char *ft_strtrim(char const *s1, char const *set);
5457
char **ft_split(char const *s, char c);
5558
char **ft_split_charset(const char *str, char *charset);

libft/ft_strjoin.c

+56-1
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
/* By: cviegas <[email protected]> +#+ +:+ +#+ */
77
/* +#+#+#+#+#+ +#+ */
88
/* Created: 2023/11/10 23:58:03 by cviegas #+# #+# */
9-
/* Updated: 2023/12/12 22:07:53 by cviegas ### ########.fr */
9+
/* Updated: 2024/03/01 12:14:31 by cviegas ### ########.fr */
1010
/* */
1111
/* ************************************************************************** */
1212

@@ -42,6 +42,61 @@ char *ft_strjoin(char const *s1, char const *s2)
4242
return (join);
4343
}
4444

45+
char *ft_strjoin_free(char *s1, char *s2)
46+
{
47+
size_t i;
48+
char *join;
49+
50+
i = 0;
51+
if (!s1 || !s2)
52+
return (NULL);
53+
join = malloc(sizeof(char) * (ft_strlen(s1) + ft_strlen(s2) + 1));
54+
if (!join)
55+
return (NULL);
56+
while (s1[i])
57+
{
58+
join[i] = s1[i];
59+
i++;
60+
}
61+
while (s2[i - ft_strlen(s1)])
62+
{
63+
join[i] = s2[i - ft_strlen(s1)];
64+
i++;
65+
}
66+
join[i] = 0;
67+
free(s1);
68+
free(s2);
69+
return (join);
70+
}
71+
72+
char *ft_strjoin_4(char const *s1, char const *s2, char const *s3,
73+
char const *s4)
74+
{
75+
int i;
76+
char *join;
77+
78+
if (!s1 || !s2 || !s3 || !s4)
79+
return (NULL);
80+
join = malloc(sizeof(char) * (ft_strlen(s1) + ft_strlen(s2) + ft_strlen(s3)
81+
+ ft_strlen(s4) + 1));
82+
if (!join)
83+
return (NULL);
84+
i = -1;
85+
while (s1[++i])
86+
join[i] = s1[i];
87+
i--;
88+
while (s2[++i - ft_strlen(s1)])
89+
join[i] = s2[i - ft_strlen(s1)];
90+
i--;
91+
while (s3[++i - ft_strlen(s1) - ft_strlen(s2)])
92+
join[i] = s3[i - ft_strlen(s1) - ft_strlen(s2)];
93+
i--;
94+
while (s4[++i - ft_strlen(s1) - ft_strlen(s2) - ft_strlen(s3)])
95+
join[i] = s4[i - ft_strlen(s1) - ft_strlen(s2) - ft_strlen(s3)];
96+
join[i] = 0;
97+
return (join);
98+
}
99+
45100
// int main(int ac, char **av)
46101
// {
47102
// if (ac == 3)

0 commit comments

Comments
 (0)