aboutsummaryrefslogtreecommitdiff
path: root/c03
diff options
context:
space:
mode:
Diffstat (limited to 'c03')
-rw-r--r--c03/ex00/ft_strcmp.c4
-rw-r--r--c03/ex01/ft_strncmp.c10
-rw-r--r--c03/ex02/ft_strcat.c16
-rw-r--r--c03/ex03/ft_strncat.c19
-rw-r--r--c03/ex04/ft_strstr.c10
-rw-r--r--c03/ex05/ft_strlcat.c31
-rw-r--r--c03/main.c41
7 files changed, 65 insertions, 66 deletions
diff --git a/c03/ex00/ft_strcmp.c b/c03/ex00/ft_strcmp.c
index 9131204..ab09c68 100644
--- a/c03/ex00/ft_strcmp.c
+++ b/c03/ex00/ft_strcmp.c
@@ -6,7 +6,7 @@
/* By: cacharle <charles.cabergs@gmail.com> +#+ +:+ +#+ */
/* +#+#+#+#+#+ +#+ */
/* Created: 2019/07/05 10:39:51 by cacharle #+# #+# */
-/* Updated: 2019/07/05 16:07:46 by cacharle ### ########.fr */
+/* Updated: 2019/07/06 13:10:58 by cacharle ### ########.fr */
/* */
/* ************************************************************************** */
@@ -17,5 +17,5 @@ int ft_strcmp(char *s1, char *s2)
s1++;
s2++;
}
- return *s1 - *s2;
+ return (*s1 - *s2);
}
diff --git a/c03/ex01/ft_strncmp.c b/c03/ex01/ft_strncmp.c
index 1dc2639..9009164 100644
--- a/c03/ex01/ft_strncmp.c
+++ b/c03/ex01/ft_strncmp.c
@@ -6,7 +6,7 @@
/* By: cacharle <charles.cabergs@gmail.com> +#+ +:+ +#+ */
/* +#+#+#+#+#+ +#+ */
/* Created: 2019/07/05 10:50:46 by cacharle #+# #+# */
-/* Updated: 2019/07/05 16:06:57 by cacharle ### ########.fr */
+/* Updated: 2019/07/07 13:58:50 by cacharle ### ########.fr */
/* */
/* ************************************************************************** */
@@ -14,8 +14,12 @@ int ft_strncmp(char *s1, char *s2, unsigned int n)
{
unsigned int i;
+ if (n == 0)
+ return (0);
i = 0;
- while (s1[i] == s2[i] && s1[i] && s2[i] && i < n - 1)
+ while (s1[i] == s2[i] && s1[i] && s2[i] && i < n)
i++;
- return s1[i] - s2[i];
+ if (i == n)
+ i--;
+ return (s1[i] - s2[i]);
}
diff --git a/c03/ex02/ft_strcat.c b/c03/ex02/ft_strcat.c
index 1ec10c0..e3b5e7a 100644
--- a/c03/ex02/ft_strcat.c
+++ b/c03/ex02/ft_strcat.c
@@ -6,23 +6,19 @@
/* By: cacharle <charles.cabergs@gmail.com> +#+ +:+ +#+ */
/* +#+#+#+#+#+ +#+ */
/* Created: 2019/07/05 11:52:56 by cacharle #+# #+# */
-/* Updated: 2019/07/05 12:58:36 by cacharle ### ########.fr */
+/* Updated: 2019/07/07 10:31:36 by cacharle ### ########.fr */
/* */
/* ************************************************************************** */
-char *ft_strcat(char *dest, char *src)
+char *ft_strcat(char *dest, char *src)
{
- char *dest_head;
+ char *dest_head;
dest_head = dest;
while (*dest)
dest++;
while (*src)
- {
- *dest = *src;
- dest++;
- src++;
- }
- *dest = *src;
- return dest_head;
+ *(dest++) = *(src++);
+ *dest = '\0';
+ return (dest_head);
}
diff --git a/c03/ex03/ft_strncat.c b/c03/ex03/ft_strncat.c
index c28fb38..4e5a999 100644
--- a/c03/ex03/ft_strncat.c
+++ b/c03/ex03/ft_strncat.c
@@ -6,24 +6,21 @@
/* By: cacharle <charles.cabergs@gmail.com> +#+ +:+ +#+ */
/* +#+#+#+#+#+ +#+ */
/* Created: 2019/07/05 13:02:04 by cacharle #+# #+# */
-/* Updated: 2019/07/05 15:33:07 by cacharle ### ########.fr */
+/* Updated: 2019/07/07 10:41:01 by cacharle ### ########.fr */
/* */
/* ************************************************************************** */
-char *ft_strncat(char *dest, char *src, unsigned int nb)
+char *ft_strncat(char *dest, char *src, unsigned int nb)
{
unsigned int i;
- char *dest_end;
+ unsigned int j;
i = 0;
- while (dest[i] != '\0')
+ while (dest[i])
i++;
- dest_end = dest + i;
- i = 0;
- while (i < nb && src[i] != '\0')
- {
- dest_end[i] = src[i];
- i++;
- }
+ j = 0;
+ while (j < nb && src[j])
+ dest[i++] = src[j++];
+ dest[i] = '\0';
return (dest);
}
diff --git a/c03/ex04/ft_strstr.c b/c03/ex04/ft_strstr.c
index e27ffc8..c8d015e 100644
--- a/c03/ex04/ft_strstr.c
+++ b/c03/ex04/ft_strstr.c
@@ -6,13 +6,13 @@
/* By: cacharle <charles.cabergs@gmail.com> +#+ +:+ +#+ */
/* +#+#+#+#+#+ +#+ */
/* Created: 2019/07/05 15:20:54 by cacharle #+# #+# */
-/* Updated: 2019/07/05 16:46:57 by cacharle ### ########.fr */
+/* Updated: 2019/07/06 13:12:55 by cacharle ### ########.fr */
/* */
/* ************************************************************************** */
#define MY_NULL 0x0
-int ft_strlen(char *str)
+int ft_strlen(char *str)
{
int counter;
@@ -25,19 +25,19 @@ int ft_strlen(char *str)
return (counter);
}
-char *ft_strstr(char *str, char *to_find)
+char *ft_strstr(char *str, char *to_find)
{
int i;
if (!ft_strlen(to_find))
- return str;
+ return (str);
while (*str)
{
i = 0;
while (to_find[i] && str[i])
{
if (to_find[i] != str[i])
- break;
+ break ;
i++;
}
if (i == ft_strlen(to_find))
diff --git a/c03/ex05/ft_strlcat.c b/c03/ex05/ft_strlcat.c
index 5cacc4d..1e7f9dc 100644
--- a/c03/ex05/ft_strlcat.c
+++ b/c03/ex05/ft_strlcat.c
@@ -6,7 +6,7 @@
/* By: cacharle <charles.cabergs@gmail.com> +#+ +:+ +#+ */
/* +#+#+#+#+#+ +#+ */
/* Created: 2019/07/05 15:43:34 by cacharle #+# #+# */
-/* Updated: 2019/07/06 07:12:28 by cacharle ### ########.fr */
+/* Updated: 2019/07/07 11:08:08 by cacharle ### ########.fr */
/* */
/* ************************************************************************** */
@@ -15,30 +15,29 @@ unsigned int my_strlen(char *str)
int counter;
counter = 0;
- while (*str != '\0')
- {
+ while (str[counter])
counter++;
- str++;
- }
return (counter);
}
unsigned int ft_strlcat(char *dest, char *src, unsigned int size)
{
unsigned int i;
- unsigned int len_src;
- unsigned int len_dest;
+ unsigned int dest_len;
+ unsigned int src_len;
- len_src = my_strlen(src);
- len_dest = my_strlen(dest);
- if (!len_src)
- return (len_dest);
- i = len_dest - 1;
- while (i < size - len_dest - 1 && src[i])
+ dest_len = my_strlen(dest);
+ src_len = my_strlen(src);
+ if (size == 0)
+ return (src_len);
+ i = dest_len;
+ while (i < size - 1 && src[i - dest_len])
{
- dest[i] = src[i];
+ dest[i] = src[i - dest_len];
i++;
}
- dest[i] = '\0';
- return (len_src + len_dest);
+ if (dest[size - 1] != '\0')
+ return (src_len + size);
+ dest[size - 1] = '\0';
+ return (dest_len + src_len);
}
diff --git a/c03/main.c b/c03/main.c
index 9c1add8..11ae881 100644
--- a/c03/main.c
+++ b/c03/main.c
@@ -9,16 +9,17 @@
int main()
{
- char s1[] = "bonjour";
- char s2[] = "bonjouj";
- printf("%d : %d\n", ft_strcmp(s1, s2), strcmp(s1, s2));
+ char s3[] = "";
+ char s4[] = "qwer";
+ printf("%d : %d\n", ft_strcmp(s3, s4), strcmp(s3, s4));
- unsigned int size = 10;
- printf("%d : %d\n", ft_strncmp(s1, s2, size), strncmp(s1, s2, size));
+ unsigned int size = 4;
+ printf("%d : %d\n", ft_strncmp(s3, s4, size), strncmp(s3, s4, size));
+ printf("-----------------\n");
char *head;
char dest[10] = "abc";
- char src[] = "defg";
+ char src[] = "a";
head = ft_strcat(dest, src);
printf("\n%s ", head);
for (int i = 0; i < 15; i++)
@@ -29,45 +30,47 @@ int main()
for (int i = 0; i < 15; i++)
printf("%d ", head[i]);
- unsigned int nsize = 1;
+ printf("\n-----------------\n");
+ unsigned int nsize = 2;
char *nhead;
- char ndest[10] = "abc";
+ char ndest[12] = "abc";
char nsrc[] = "defg";
nhead = ft_strncat(ndest, nsrc, nsize);
printf("\n%s ", nhead);
for (int i = 0; i < 15; i++)
printf("%d ", nhead[i]);
- char _ndest[10] = "abc";
+ char _ndest[12] = "abc";
nhead = strncat(_ndest, nsrc, nsize);
printf("\n%s ", nhead);
for (int i = 0; i < 15; i++)
printf("%d ", nhead[i]);
- printf("\n");
+ printf("\n-----------------\n");
char *haystack = "abcdefg";
- char *needle = "abcdefg";
+ char *needle = "";
char *found;
found = ft_strstr(haystack, needle);
+ printf("\n%s ", found);
if (found)
for (int i = 0; i < 5; i++)
printf("%d ", found[i]);
- printf("\n%s\n", found);
found = strstr(haystack, needle);
+ printf("\n%s ", found);
if (found)
for (int i = 0; i < 5; i++)
printf("%d ", found[i]);
- printf("\n%s\n", found);
- unsigned int lsize = 100;
- char ldest[100] = "abcdef";
- char lsrc[] = "d";
+ printf("\n-----------------\n");
+ unsigned int lsize = 15;
+ char ldest[15] = "0123456789";
+ char lsrc[] = "doit";
printf("\nsize %u, ", ft_strlcat(ldest, lsrc, lsize));
printf("%s ", ldest);
for (int i = 0; i < 15; i++)
printf("%d ", ldest[i]);
- char _ldest[100] = "abcdef";
+ char _ldest[15] = "0123456789";
printf("\nsize %lu, ", strlcat(_ldest, lsrc, lsize));
- printf("%s ", ldest);
+ printf("%s ", _ldest);
for (int i = 0; i < 15; i++)
- printf("%d ", ldest[i]);
+ printf("%d ", _ldest[i]);
}