-
Notifications
You must be signed in to change notification settings - Fork 0
/
58_ft_strjoin.c
75 lines (61 loc) · 1.55 KB
/
58_ft_strjoin.c
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
/*
Write the function ft_strjoin that will take two strings as arguments
It must return a new string allocated on the heap and resulted in two strings concatenated
In case of an error or a NULL argument your must return a NULL pointer
The function must be prototyped as follows: char *ft_strjoin(char *prefix, char *suffix);
Example:
ft_strjoin("a", "b"); // will return "ab"
Allowed functions: malloc
*/
#include <stdlib.h>
#include <stdio.h>
#include <string.h>
int ft_strlen(char *str)
{
int i;
i = 0;
while (str[i] != '\0')
{
i++;
}
return (i);
}
char *ft_strjoin(char *prefix, char *suffix)
{
int i;
int j;
i = 0;
j = 0;
char *allocated_return;
int allocated_length;
allocated_length = ft_strlen(prefix) + ft_strlen(suffix); // need a length of both strings
allocated_return = malloc(allocated_length * sizeof(char) + 1); // +1 for null pointer
if (allocated_return == 0)
{
return (0);
}
while (prefix[i] != '\0')
{
allocated_return[i] = prefix[i]; // first copy all the element of first string
i++;
}
while (suffix[j] != '\0')
{
allocated_return[i] = suffix[j]; // then copy second string
i++;
j++;
}
allocated_return[i] = '\0';
return (allocated_return);
}
/*
int main()
{
char *allocated_return;
char *a = "a";
char *b = "b";
allocated_return = ft_strjoin(a, b);
printf("%s\n", allocated_return);
return (0);
}
*/