commit e92a880178b7f963dd1587bd87882284f3702eca Author: Lumi Date: Fri Jun 12 08:51:03 2026 +0200 Adding C-Strings diff --git a/ex0/ft_strcpy.c b/ex0/ft_strcpy.c new file mode 100644 index 0000000..e3904b9 --- /dev/null +++ b/ex0/ft_strcpy.c @@ -0,0 +1,43 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* ft_strcpy.c :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: lclerel- +#+ +:+ +#+ */ +/* +#+#+#+#+#+ +#+ */ +/* Created: 2026/03/24 12:24:04 by lclerel- #+# #+# */ +/* Updated: 2026/03/24 18:38:10 by lclerel- ### ########.fr */ +/* */ +/* ************************************************************************** */ + +#include + +char *ft_strcpy(char *dest, char *src) +{ + int i; + + i = 0; + while (src[i] != '\0') + { + dest[i] = src[i]; + i++; + } + dest[i] = '\0'; + return (dest); +} +/* +int main(void) +{ + char src[] = "Salut, je suis Lumi :3"; + char dst[20]; + int i = 0; + + ft_strcpy(dst, src); + while (dst[i]) + { + write(1, &dst[i], 1); + i++; + } + write(1, "\n", 1); + return (0); +}*/ diff --git a/ex1/ft_strncpy.c b/ex1/ft_strncpy.c new file mode 100644 index 0000000..305e908 --- /dev/null +++ b/ex1/ft_strncpy.c @@ -0,0 +1,49 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* ft_strncpy.c :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: lclerel- +#+ +:+ +#+ */ +/* +#+#+#+#+#+ +#+ */ +/* Created: 2026/03/24 12:35:37 by lclerel- #+# #+# */ +/* Updated: 2026/03/24 12:55:02 by lclerel- ### ########.fr */ +/* */ +/* ************************************************************************** */ + +#include +#include + +char *ft_strncpy(char *dest, char *src, unsigned int n) +{ + unsigned int i; + + i = 0; + while (src[i] != '\0' && i < n) + { + dest[i] = src[i]; + i++; + } + while (i < n) + { + dest[i] = '\0'; + i++; + } + return (dest); +} +/* +int main(void) +{ + unsigned int size = 30; + char src[] = "Salut, je suis Lumi :3"; + char dst[30] = {0}; + int i = 0; + + ft_strncpy(dst, src, size); + while (dst[i]) + { + write(1, &dst[i], 1); + i++; + } + write(1, "\n", 1); + return (0); +}*/ diff --git a/ex2/ft_strcmp.c b/ex2/ft_strcmp.c new file mode 100644 index 0000000..69e76fe --- /dev/null +++ b/ex2/ft_strcmp.c @@ -0,0 +1,84 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* ft_strcmp.c :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: lclerel- +#+ +:+ +#+ */ +/* +#+#+#+#+#+ +#+ */ +/* Created: 2026/03/24 13:44:05 by lclerel- #+# #+# */ +/* Updated: 2026/03/25 22:46:26 by lclerel- ### ########.fr */ +/* */ +/* ************************************************************************** */ + +#include + +int ft_strcmp(char *s1, char *s2) +{ + int i; + + i = 0; + while ((s1[i] || s2[i]) && s1[i] == s2[i]) + i++; + return ((unsigned char)s1[i] - (unsigned char)s2[i]); +} + +/*void ft_putchar(char chara) +{ + write(1, &chara, 1); +} + +void ft_putstr(char *str) +{ + int i; + + i = 0; + while (str[i]) + { + ft_putchar(str[i]); + i++; + } +} + +int main(void) +{ + char *s1 = "Lumi"; + char *s2 = "Lumi"; + char *s3 = "LumX"; + char *rdmvar = "Pasteque"; + char *nullvar = "NULL"; + // Test 1 + write(1, "Test avec s1 (", 14); + ft_putstr(s1); + write(1, ") et s2 (", 9); + ft_putstr(s2); + write(1, ") : \n", 5); + if (ft_strcmp(s1, s2) == 0) + write(1, "Test 1 : OK :3", 14); + else + write(1, "Test 1 : Not OK :(", 18); + ft_putchar('\n'); + // Test 2 + write(1, "Test avec s1 (", 14); + ft_putstr(s1); + write(1, ") et s3 (", 9); + ft_putstr(s3); + write(1, ") : \n", 5); + if (ft_strcmp(s1, s3) == 0) + write(1, "Test 2 : OK :3", 14); + else + write(1, "Test 2 : Not OK :(", 18); + ft_putchar('\n'); + // Test 3 + write(1, "Test avec NULLVAR (", 19); + ft_putstr(nullvar); + write(1, ") et rdmvar (", 13); + ft_putstr(rdmvar); + write(1, ") : \n", 5); + if (ft_strcmp(nullvar, rdmvar) == 0) + write(1, "Test 3 : OK :3", 14); + else + write(1, "Test 3 : Not OK :(", 18); + ft_putchar('\n'); + return (0); +} +*/ diff --git a/ex3/ft_strncmp.c b/ex3/ft_strncmp.c new file mode 100644 index 0000000..4f17848 --- /dev/null +++ b/ex3/ft_strncmp.c @@ -0,0 +1,131 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* ft_strncmp.c :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: lclerel- +#+ +:+ +#+ */ +/* +#+#+#+#+#+ +#+ */ +/* Created: 2026/03/24 13:44:05 by lclerel- #+# #+# */ +/* Updated: 2026/03/25 22:46:55 by lclerel- ### ########.fr */ +/* */ +/* ************************************************************************** */ + +#include + +int ft_strncmp(char *s1, char *s2, unsigned int n) +{ + unsigned int i; + + i = 0; + if (n == 0) + return (0); + while ((s1[i] || s2[i]) && s1[i] == s2[i] && i < n - 1) + i++; + return ((unsigned char)s1[i] - (unsigned char)s2[i]); +} +/* +void ft_putnbr(int nb) +{ + char value; + + if (nb == -2147483648) + { + write(1, "-2147483648", 11); + return ; + } + if (nb < 0) + { + write(1, "-", 1); + nb = -nb; + } + if (nb > 9) + { + ft_putnbr(nb / 10); + } + value = nb % 10 + '0'; + write(1, &value, 1); +} + +void ft_putchar(char chara) +{ + write(1, &chara, 1); +} + +void ft_putstr(char *str) +{ + int i; + + i = 0; + while (str[i]) + { + ft_putchar(str[i]); + i++; + } +} + +int main(void) +{ + char *s1 = "Lumiere"; + char *s2 = "Luminescense"; + char *s3 = "Lumi"; + char *rdmvar = "Pasteque"; + char *nullvar = "NULL"; + int val; + // Test 1 + val = 4; + write(1, "Test avec s1 (", 14); + ft_putstr(s1); + write(1, ") et s2 (", 9); + ft_putstr(s2); + write(1, ") de valeur ", 13); + ft_putnbr(val); + write(1, ": \n", 3); + if (ft_strncmp(s1, s2, val) == 0) + write(1, "Test 1 : OK :3", 14); + else + write(1, "Test 1 : Not OK :(", 18); + ft_putchar('\n'); + // Test 2 + val = 5; + write(1, "Test avec s1 (", 14); + ft_putstr(s1); + write(1, ") et s2 (", 9); + ft_putstr(s2); + write(1, ") de valeur ", 13); + ft_putnbr(val); + write(1, ": \n", 3); + if (ft_strncmp(s1, s2, val) == 0) + write(1, "Test 2 : OK :3", 14); + else + write(1, "Test 2 : Not OK :(", 18); + ft_putchar('\n'); + // Test 3 + val = 3; + write(1, "Test avec s1 (", 14); + ft_putstr(s1); + write(1, ") et s3 (", 9); + ft_putstr(s3); + write(1, ") de valeur ", 13); + ft_putnbr(val); + write(1, ": \n", 3); + if (ft_strncmp(nullvar, rdmvar, val) == 0) + write(1, "Test 3 : OK :3", 14); + else + write(1, "Test 3 : Not OK :(", 18); + ft_putchar('\n'); + // Test 4 + val = 3; + write(1, "Test avec NULLVAR (", 19); + ft_putstr(nullvar); + write(1, ") et rdmvar (", 13); + ft_putstr(rdmvar); + write(1, ") de valeur ", 13); + ft_putnbr(val); + write(1, ": \n", 3); + if (ft_strncmp(nullvar, rdmvar, val) == 0) + write(1, "Test 4 : OK :3", 14); + else + write(1, "Test 4 : Not OK :(", 18); + ft_putchar('\n'); + return (0); +}*/ diff --git a/ex4/ft_strcat.c b/ex4/ft_strcat.c new file mode 100644 index 0000000..6bac896 --- /dev/null +++ b/ex4/ft_strcat.c @@ -0,0 +1,40 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* ft_strcat.c :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: lclerel- +#+ +:+ +#+ */ +/* +#+#+#+#+#+ +#+ */ +/* Created: 2026/03/24 17:44:18 by lclerel- #+# #+# */ +/* Updated: 2026/03/24 18:04:08 by lclerel- ### ########.fr */ +/* */ +/* ************************************************************************** */ + +#include + +char *ft_strcat(char *dest, char *src) +{ + unsigned int i; + unsigned int j; + + i = 0; + j = 0; + while (dest[i]) + i++; + while (src[j]) + { + dest[i + j] = src[j]; + j++; + } + dest[i + j] = '\0'; + return (dest); +} +/* +int main(void) +{ + char dst[25] = "Salut :3 "; + char src[] = "Je suis Lumi ^w^"; + + ft_strcat(dst, src); + write(1, dst, 25); +}*/ diff --git a/ex5/ft_strncat.c b/ex5/ft_strncat.c new file mode 100644 index 0000000..6996f38 --- /dev/null +++ b/ex5/ft_strncat.c @@ -0,0 +1,41 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* ft_strncat.c :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: lclerel- +#+ +:+ +#+ */ +/* +#+#+#+#+#+ +#+ */ +/* Created: 2026/03/24 18:04:58 by lclerel- #+# #+# */ +/* Updated: 2026/03/24 18:39:31 by lclerel- ### ########.fr */ +/* */ +/* ************************************************************************** */ + +#include + +char *ft_strncat(char *dest, char *src, unsigned int nb) +{ + unsigned int i; + unsigned int j; + + i = 0; + j = 0; + while (dest[i]) + i++; + while (src[j] && j < nb) + { + dest[i + j] = src[j]; + j++; + } + dest[i + j] = '\0'; + return (dest); +} +/* +int main(void) +{ + char dst[100] = "Salut :3 "; + char src[] = "Je suis Lumi ^w^"; + unsigned int nb = 26; + + ft_strncat(dst, src, nb); + write(1, dst, 25); +}*/ diff --git a/ex6/ft_strstr.c b/ex6/ft_strstr.c new file mode 100644 index 0000000..a785711 --- /dev/null +++ b/ex6/ft_strstr.c @@ -0,0 +1,53 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* ft_strstr.c :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: lclerel- +#+ +:+ +#+ */ +/* +#+#+#+#+#+ +#+ */ +/* Created: 2026/03/24 18:09:44 by lclerel- #+# #+# */ +/* Updated: 2026/03/25 11:15:55 by lclerel- ### ########.fr */ +/* */ +/* ************************************************************************** */ + +#include + +char *ft_strstr(char *str, char *to_find) +{ + int i; + int j; + + i = 0; + if (to_find[0] == '\0') + return (str); + while (str[i]) + { + j = 0; + while (str[i + j] == to_find[j] && to_find[j]) + j++; + if (to_find[j] == '\0') + return (&str[i]); + i++; + } + return (0); +} + +/*int main(void) +{ + char *st = "JVE!5toU6Bnd1Dn8zBs2h3kLM9Fkeo=;Cj>=THqcN;5iJS5$JKw3E4iJuc"; + char *find = "j>=THqcN;5"; + char *res; + + res = ft_strstr(st, find); + if (res) + { + write(1, "J'ai un truc ! C'est SA : ", 26); + write(1, res, 16); + write(1, "\n", 1); + } + else + { + write(1, "Y'as rien dans ton tas de merde Lumi.\n", 38); + } + return (0); +}*/ diff --git a/ex7/ft_atoi.c b/ex7/ft_atoi.c new file mode 100644 index 0000000..72d9825 --- /dev/null +++ b/ex7/ft_atoi.c @@ -0,0 +1,106 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* ft_atoi.c :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: lclerel- +#+ +:+ +#+ */ +/* +#+#+#+#+#+ +#+ */ +/* Created: 2026/03/24 12:58:12 by lclerel- #+# #+# */ +/* Updated: 2026/03/24 13:23:45 by lclerel- ### ########.fr */ +/* */ +/* ************************************************************************** */ + +#include + +int ft_atoi(char *str) +{ + int i; + int sign; + int res; + + res = 0; + i = 0; + sign = 1; + while (str[i] == ' ' || (str[i] >= 9 && str[i] <= 13)) + i++; + while (str[i] == '-' || str[i] == '+') + { + if (str[i] == '-') + sign *= -1; + i++; + } + while (str[i] >= '0' && str[i] <= '9') + { + res = (res * 10) + (str[i] - '0'); + i++; + } + return (res * sign); +} + +/* +void ft_putnbr(int nb) +{ + char value; + + if (nb == -2147483648) + { + write(1, "-2147483648", 11); + return ; + } + if (nb < 0) + { + write(1, "-", 1); + nb = -nb; + } + if (nb > 9) + { + ft_putnbr(nb / 10); + } + value = nb % 10 + '0'; + write(1, &value, 1); +} + +int main(void) +{ + int res; + + // Test 1 + write(1, "/~~~Test 1~~~\\\n", 15); + write(1, "> Test avec -------+-----101010 : <\n", 36); + res = ft_atoi(" -------+-----101010"); + if (res == -101010) + write(1, "> OK. :3 <\n", 11); + else + write(1, "> Not OK :( <\n", 14); + write(1, "> Resultat retourner : ", 23); + ft_putnbr(res); + write(1, " <\n\\~~~Test 1~~~/\n\n", 18); + // Fin Test 1 + write(1, "\n", 1); + // Test 2 + write(1, "/~~~Test 2~~~\\\n", 15); + write(1, "> Test avec NULL : <\n", 21); + res = ft_atoi("NULL"); + if (res == 1) + write(1, "> OK. :3 <\n", 11); + else + write(1, "> Not OK :( <\n", 14); + write(1, "> Resultat retourner : ", 23); + ft_putnbr(res); + write(1, " <\n\\~~~Test 2~~~/\n", 18); + // Fin Test 2 + write(1, "\n", 1); + // Test 3 + write(1, "/~~~Test 3~~~\\\n", 15); + write(1, "> Test avec 213d6516 : <\n", 25); + res = ft_atoi("213d6516"); + if (res == 213) + write(1, "> OK. :3 <\n", 11); + else + write(1, "> Not OK :( <\n", 14); + write(1, "> Resultat retourner : ", 23); + ft_putnbr(res); + write(1, " <\n\\~~~Test 3~~~/\n", 18); + // Fin Test 3 + return (0); +}*/ \ No newline at end of file