aboutsummaryrefslogtreecommitdiff
path: root/c02
diff options
context:
space:
mode:
Diffstat (limited to 'c02')
-rw-r--r--c02/ex00/ft_strcpy.c12
-rw-r--r--c02/ex01/ft_strncpy.c6
-rw-r--r--c02/ex02/ft_str_is_alpha.c9
-rw-r--r--c02/ex03/ft_str_is_numeric.c5
-rw-r--r--c02/ex04/ft_str_is_lowercase.c5
-rw-r--r--c02/ex05/ft_str_is_uppercase.c5
-rw-r--r--c02/ex06/ft_str_is_printable.c7
-rw-r--r--c02/ex07/ft_strupcase.c16
-rw-r--r--c02/ex08/ft_strlowercase.c (renamed from c02/ex07/ft_strlowercase.c)12
-rw-r--r--c02/ex09/ft_strcapitalize.c46
-rw-r--r--c02/ex10/ft_strlcpy.c13
-rw-r--r--c02/ex11/ft_putstr_non_printable.c42
-rw-r--r--c02/main.c104
13 files changed, 226 insertions, 56 deletions
diff --git a/c02/ex00/ft_strcpy.c b/c02/ex00/ft_strcpy.c
index 9972a32..9a1e1f1 100644
--- a/c02/ex00/ft_strcpy.c
+++ b/c02/ex00/ft_strcpy.c
@@ -6,18 +6,20 @@
/* By: cacharle <charles.cabergs@gmail.com> +#+ +:+ +#+ */
/* +#+#+#+#+#+ +#+ */
/* Created: 2019/07/03 18:54:30 by cacharle #+# #+# */
-/* Updated: 2019/07/03 19:08:36 by cacharle ### ########.fr */
+/* Updated: 2019/07/04 21:16:26 by cacharle ### ########.fr */
/* */
/* ************************************************************************** */
char *ft_strcpy(char *dest, char *src)
{
+ int i;
+
+ i = 0;
while (*src != '\0')
{
- *dest = *src;
- src++;
- dest++;
+ dest[i] = src[i];
+ i++;
}
- *dest = *src;
+ dest[i] = '\0';
return (dest);
}
diff --git a/c02/ex01/ft_strncpy.c b/c02/ex01/ft_strncpy.c
index 61bb451..0526dbb 100644
--- a/c02/ex01/ft_strncpy.c
+++ b/c02/ex01/ft_strncpy.c
@@ -6,16 +6,16 @@
/* By: cacharle <charles.cabergs@gmail.com> +#+ +:+ +#+ */
/* +#+#+#+#+#+ +#+ */
/* Created: 2019/07/03 19:02:31 by cacharle #+# #+# */
-/* Updated: 2019/07/03 19:36:32 by cacharle ### ########.fr */
+/* Updated: 2019/07/04 21:15:46 by cacharle ### ########.fr */
/* */
/* ************************************************************************** */
char *ft_strncpy(char *dest, char *src, unsigned int n)
{
- int i;
+ unsigned int i;
i = 0;
- while (i < n || src[i] != '\0')
+ while (i < n && src[i] != '\0')
{
dest[i] = src[i];
i++;
diff --git a/c02/ex02/ft_str_is_alpha.c b/c02/ex02/ft_str_is_alpha.c
index 46df96a..bddf6a4 100644
--- a/c02/ex02/ft_str_is_alpha.c
+++ b/c02/ex02/ft_str_is_alpha.c
@@ -6,19 +6,24 @@
/* By: cacharle <charles.cabergs@gmail.com> +#+ +:+ +#+ */
/* +#+#+#+#+#+ +#+ */
/* Created: 2019/07/03 19:10:32 by cacharle #+# #+# */
-/* Updated: 2019/07/03 19:40:15 by cacharle ### ########.fr */
+/* Updated: 2019/07/04 10:12:29 by cacharle ### ########.fr */
/* */
/* ************************************************************************** */
int is_between(char start, char end, char subject)
{
+ printf("--%c %c %c\n", start, end, subject);
return (subject >= start && subject <= end);
}
int ft_str_is_alpha(char *str)
{
while (*str != '\0')
- if (!is_between('a', 'z', *str) || !is_between('A', 'Z', *str))
+ {
+ printf("%c ", *str);
+ if (!(is_between('a', 'z', *str) || is_between('A', 'Z', *str)))
return (0);
+ str++;
+ }
return (1);
}
diff --git a/c02/ex03/ft_str_is_numeric.c b/c02/ex03/ft_str_is_numeric.c
index b73450e..83ad454 100644
--- a/c02/ex03/ft_str_is_numeric.c
+++ b/c02/ex03/ft_str_is_numeric.c
@@ -6,7 +6,7 @@
/* By: cacharle <charles.cabergs@gmail.com> +#+ +:+ +#+ */
/* +#+#+#+#+#+ +#+ */
/* Created: 2019/07/03 19:26:04 by cacharle #+# #+# */
-/* Updated: 2019/07/03 19:39:25 by cacharle ### ########.fr */
+/* Updated: 2019/07/04 10:31:44 by cacharle ### ########.fr */
/* */
/* ************************************************************************** */
@@ -18,7 +18,10 @@ int is_between(char start, char end, char subject)
int ft_str_is_numeric(char *str)
{
while (*str != '\0')
+ {
if (!is_between('0', '9', *str))
return (0);
+ str++;
+ }
return (1);
}
diff --git a/c02/ex04/ft_str_is_lowercase.c b/c02/ex04/ft_str_is_lowercase.c
index b053ee6..e12d16e 100644
--- a/c02/ex04/ft_str_is_lowercase.c
+++ b/c02/ex04/ft_str_is_lowercase.c
@@ -6,7 +6,7 @@
/* By: cacharle <charles.cabergs@gmail.com> +#+ +:+ +#+ */
/* +#+#+#+#+#+ +#+ */
/* Created: 2019/07/03 19:30:47 by cacharle #+# #+# */
-/* Updated: 2019/07/03 19:38:43 by cacharle ### ########.fr */
+/* Updated: 2019/07/04 10:34:23 by cacharle ### ########.fr */
/* */
/* ************************************************************************** */
@@ -18,7 +18,10 @@ int is_between(char start, char end, char subject)
int ft_str_is_lowercase(char *str)
{
while (*str != '\0')
+ {
if (!is_between('a', 'z', *str))
return (0);
+ str++;
+ }
return (1);
}
diff --git a/c02/ex05/ft_str_is_uppercase.c b/c02/ex05/ft_str_is_uppercase.c
index b615982..0ff55b2 100644
--- a/c02/ex05/ft_str_is_uppercase.c
+++ b/c02/ex05/ft_str_is_uppercase.c
@@ -6,7 +6,7 @@
/* By: cacharle <charles.cabergs@gmail.com> +#+ +:+ +#+ */
/* +#+#+#+#+#+ +#+ */
/* Created: 2019/07/03 19:33:13 by cacharle #+# #+# */
-/* Updated: 2019/07/03 19:40:56 by cacharle ### ########.fr */
+/* Updated: 2019/07/04 10:36:44 by cacharle ### ########.fr */
/* */
/* ************************************************************************** */
@@ -18,7 +18,10 @@ int is_between(char start, char end, char subject)
int ft_str_is_uppercase(char *str)
{
while (*str != '\0')
+ {
if (!is_between('A', 'Z', *str))
return (0);
+ str++;
+ }
return (1);
}
diff --git a/c02/ex06/ft_str_is_printable.c b/c02/ex06/ft_str_is_printable.c
index cd5148e..edb8fe5 100644
--- a/c02/ex06/ft_str_is_printable.c
+++ b/c02/ex06/ft_str_is_printable.c
@@ -6,14 +6,17 @@
/* By: cacharle <charles.cabergs@gmail.com> +#+ +:+ +#+ */
/* +#+#+#+#+#+ +#+ */
/* Created: 2019/07/03 19:43:32 by cacharle #+# #+# */
-/* Updated: 2019/07/03 19:44:57 by cacharle ### ########.fr */
+/* Updated: 2019/07/04 21:02:08 by cacharle ### ########.fr */
/* */
/* ************************************************************************** */
-int ft_str_is_printable(char *str)
+int ft_str_is_printable(char *str)
{
while (*str != '\0')
+ {
if (*str < ' ')
return (0);
+ str++;
+ }
return (1);
}
diff --git a/c02/ex07/ft_strupcase.c b/c02/ex07/ft_strupcase.c
index 9ffc342..30ef161 100644
--- a/c02/ex07/ft_strupcase.c
+++ b/c02/ex07/ft_strupcase.c
@@ -6,19 +6,25 @@
/* By: cacharle <charles.cabergs@gmail.com> +#+ +:+ +#+ */
/* +#+#+#+#+#+ +#+ */
/* Created: 2019/07/03 19:48:22 by cacharle #+# #+# */
-/* Updated: 2019/07/03 19:51:38 by cacharle ### ########.fr */
+/* Updated: 2019/07/04 21:01:47 by cacharle ### ########.fr */
/* */
/* ************************************************************************** */
-int is_between(char start, char end, char subject)
+int is_between(char start, char end, char subject)
{
return (subject >= start && subject <= end);
}
-char *ft_strupcase(char *str)
+char *ft_strupcase(char *str)
{
+ char *head;
+
+ head = str;
while (*str != '\0')
- if (is_between('a', 'z', *str)
+ {
+ if (is_between('a', 'z', *str))
*str = *str - 'a' + 'A';
- return (str);
+ str++;
+ }
+ return (head);
}
diff --git a/c02/ex07/ft_strlowercase.c b/c02/ex08/ft_strlowercase.c
index 18855e5..c0e27c6 100644
--- a/c02/ex07/ft_strlowercase.c
+++ b/c02/ex08/ft_strlowercase.c
@@ -6,7 +6,7 @@
/* By: cacharle <charles.cabergs@gmail.com> +#+ +:+ +#+ */
/* +#+#+#+#+#+ +#+ */
/* Created: 2019/07/03 19:53:41 by cacharle #+# #+# */
-/* Updated: 2019/07/03 19:54:46 by cacharle ### ########.fr */
+/* Updated: 2019/07/04 11:24:01 by cacharle ### ########.fr */
/* */
/* ************************************************************************** */
@@ -17,8 +17,14 @@ int is_between(char start, char end, char subject)
char *ft_strlowcase(char *str)
{
+ char *head;
+
+ head = str;
while (*str != '\0')
- if (is_between('A', 'Z', *str)
+ {
+ if (is_between('A', 'Z', *str))
*str = *str - 'A' + 'a';
- return (str);
+ str++;
+ }
+ return (head);
}
diff --git a/c02/ex09/ft_strcapitalize.c b/c02/ex09/ft_strcapitalize.c
new file mode 100644
index 0000000..2707de7
--- /dev/null
+++ b/c02/ex09/ft_strcapitalize.c
@@ -0,0 +1,46 @@
+/* ************************************************************************** */
+/* */
+/* ::: :::::::: */
+/* ft_strcapitalize.c :+: :+: :+: */
+/* +:+ +:+ +:+ */
+/* By: cacharle <charles.cabergs@gmail.com> +#+ +:+ +#+ */
+/* +#+#+#+#+#+ +#+ */
+/* Created: 2019/07/04 13:18:24 by cacharle #+# #+# */
+/* Updated: 2019/07/04 15:24:18 by cacharle ### ########.fr */
+/* */
+/* ************************************************************************** */
+
+int is_between(char start, char end, char character)
+{
+ return (character >= start && character <= end);
+}
+
+int is_alphanum(char character)
+{
+ return (is_between('a', 'z', character) || is_between('A', 'Z', character)
+ || is_between('0', '9', character));
+}
+
+char *ft_strcapitalize(char *str)
+{
+ char *cursor;
+
+ cursor = str;
+ while (*cursor != '\0')
+ {
+ if (is_alphanum(*cursor))
+ {
+ if (is_between('a', 'z', *cursor))
+ *cursor = *cursor - 'a' + 'A';
+ cursor++;
+ while (is_alphanum(*cursor))
+ {
+ if (is_between('A', 'Z', *cursor))
+ *cursor = *cursor - 'A' + 'a';
+ cursor++;
+ }
+ }
+ cursor++;
+ }
+ return (str);
+}
diff --git a/c02/ex10/ft_strlcpy.c b/c02/ex10/ft_strlcpy.c
new file mode 100644
index 0000000..08f72a2
--- /dev/null
+++ b/c02/ex10/ft_strlcpy.c
@@ -0,0 +1,13 @@
+/* ************************************************************************** */
+/* */
+/* ::: :::::::: */
+/* ft_strlcpy.c :+: :+: :+: */
+/* +:+ +:+ +:+ */
+/* By: cacharle <charles.cabergs@gmail.com> +#+ +:+ +#+ */
+/* +#+#+#+#+#+ +#+ */
+/* Created: 2019/07/04 15:27:01 by cacharle #+# #+# */
+/* Updated: 2019/07/04 15:27:03 by cacharle ### ########.fr */
+/* */
+/* ************************************************************************** */
+
+
diff --git a/c02/ex11/ft_putstr_non_printable.c b/c02/ex11/ft_putstr_non_printable.c
new file mode 100644
index 0000000..0171464
--- /dev/null
+++ b/c02/ex11/ft_putstr_non_printable.c
@@ -0,0 +1,42 @@
+/* ************************************************************************** */
+/* */
+/* ::: :::::::: */
+/* ft_putstr_non_printable.c :+: :+: :+: */
+/* +:+ +:+ +:+ */
+/* By: cacharle <charles.cabergs@gmail.com> +#+ +:+ +#+ */
+/* +#+#+#+#+#+ +#+ */
+/* Created: 2019/07/04 16:46:03 by cacharle #+# #+# */
+/* Updated: 2019/07/04 21:53:48 by cacharle ### ########.fr */
+/* */
+/* ************************************************************************** */
+
+#include <unistd.h>
+
+void ft_putchar(char c)
+{
+ write(1, &c, 1);
+}
+
+void ft_putstr_non_printable(char *str)
+{
+ unsigned char tmp;
+ unsigned char *cursor;
+ char *hex_symbols;
+
+ hex_symbols = "0123456789abcdef";
+ cursor = str;
+ while (*cursor != '\0')
+ {
+ if (*cursor >= ' ' && *cursor <= '~')
+ write(1, cursor, 1);
+ else
+ {
+ ft_putchar('\\');
+ tmp = *cursor / 16;
+ ft_putchar(hex_symbols[tmp]);
+ tmp = *cursor % 16;
+ ft_putchar(hex_symbols[tmp]);
+ }
+ cursor++;
+ }
+}
diff --git a/c02/main.c b/c02/main.c
index 5d6e31b..2e08801 100644
--- a/c02/main.c
+++ b/c02/main.c
@@ -1,49 +1,87 @@
#include <stdio.h>
#include <limits.h>
-/*#include "ex00/ft_putchar.c"*/
-/*#include "ex01/ft_print_alphabet.c"*/
-/*#include "ex02/ft_print_reverse_alphabet.c"*/
-/*#include "ex03/ft_print_numbers.c"*/
-/*#include "ex04/ft_is_negative.c"*/
-/*#include "ex05/ft_print_comb.c"*/
-/*#include "ex06/ft_print_comb2.c"*/
-/*#include "ex07/ft_putnbr.c"*/
-#include "ex08/ft_print_combn.c"
+#include "ex00/ft_strcpy.c"
+#include "ex01/ft_strncpy.c"
+/*#include "ex02/ft_str_is_alpha.c"*/
+/*#include "ex03/ft_str_is_numeric.c"*/
+/*#include "ex04/ft_str_is_lowercase.c"*/
+/*#include "ex05/ft_str_is_uppercase.c"*/
+/*#include "ex06/ft_str_is_printable.c"*/
+/*#include "ex07/ft_strupcase.c"*/
+/*#include "ex08/ft_strlowercase.c"*/
+#include "ex09/ft_strcapitalize.c"
+#include "ex10/ft_strlcpy.c"
+#include "ex11/ft_putstr_non_printable.c"
int main()
{
+ /*char *last;*/
+ /*char dest[13];*/
+ /*char src[] = "aonjour asdf\0 asdf";*/
+ /*last = ft_strcpy(dest, src);*/
+ /*for (int i = 0; i < 13; i++)*/
+ /*printf("%d ", dest[i]);*/
+ /*printf("last %d", *last);*/
+ /*printf("\n%s\n", dest);*/
- /*ft_putchar('a');*/
- /*ft_putchar('z');*/
- /*ft_putchar('\n');*/
+ /*char ndest[10];*/
+ /*char nsrc[20] = "bonjour jew\0";*/
+ /*last = ft_strncpy(ndest, nsrc, sizeof ndest);*/
+ /*for (int i = 0; i < sizeof ndest; i++)*/
+ /*printf("%d ", ndest[i]);*/
+ /*printf("dest %d, last %d", ndest, last);*/
+ /*printf("\n%s\n", ndest);*/
- /*ft_putchar('\n');*/
- /*ft_print_alphabet();*/
+ /*char salpha[] = "BONJour";*/
+ /*char snalpha[] = "bonJour";*/
+ /*printf("%d salpha\n", ft_str_is_alpha(salpha));*/
+ /*printf("%d snalpha\n", ft_str_is_alpha(snalpha));*/
- /*ft_putchar('\n');*/
- /*ft_print_reverse_alphabet();*/
+ /*char num[] = "0123456789";*/
+ /*char nnum[] = "0123456789a";*/
+ /*printf("%d num\n", ft_str_is_numeric(num));*/
+ /*printf("%d nnum\n", ft_str_is_numeric(nnum));*/
- /*ft_putchar('\n');*/
- /*ft_print_numbers();*/
+ /*char low[] = "bonjour";*/
+ /*char nlow[] = "bonjOUR";*/
+ /*printf("%d low\n", ft_str_is_lowercase(low));*/
+ /*printf("%d nlow\n", ft_str_is_lowercase(nlow));*/
- /*ft_putchar('\n');*/
- /*ft_is_negative(1);*/
- /*ft_is_negative(0);*/
- /*ft_is_negative(-1);*/
+ /*char up[] = "BONJOUR";*/
+ /*char nup[] = "BonjOUR";*/
+ /*printf("%d up\n", ft_str_is_uppercase(up));*/
+ /*printf("%d nup\n", ft_str_is_uppercase(nup));*/
- /*ft_putchar('\n');*/
- /*ft_print_comb();*/
+ /*char printable[] = "boq4523$$%@$!``~~;'[[=_";*/
+ /*char nprintable[] = "as^?\bf89*0(\n\r";*/
+ /*printf("%d printable\n", ft_str_is_printable(printable));*/
+ /*printf("%d nprintable\n", ft_str_is_printable(nprintable));*/
- /*ft_putchar('\n');*/
- /*ft_print_comb2();*/
+ /*char toup[] = "bonjourJE6''";*/
+ /*char *upped = ft_strupcase(toup);*/
+ /*printf("%s\n", upped);*/
- /*ft_putchar('\n');*/
- /*ft_putnbr(INT_MAX);*/
- /*ft_putchar('\n');*/
- /*ft_putnbr(INT_MIN);*/
- /*ft_putchar('\n');*/
- /*ft_putnbr(-42);*/
+ /*char tolow[] = "bonJOURJE6''";*/
+ /*char *lowered = ft_strlowcase(tolow);*/
+ /*printf("%s\n", lowered);*/
+ /*char tocap[1024] = "salut, comment tu vas ? 42mots quarante-deux; cinquante+et+un";*/
+ /*ft_strcapitalize(tocap);*/
+ /*printf("%s\n", tocap);*/
- ft_print_combn(2);
+ /*char buf[40];*/
+ /*char src[] = "bonjour qqq";*/
+ /*printf("str len = %u", ft_strlcpy(buf, str, 40));*/
+
+ /*char unp[10] = {10, 1, 2, 'a', 'g', '+', ' ', 20};*/
+ /*ft_putstr_non_printable(unp);*/
+ char unp2[10] = {'\xff'};
+ for (int i = 0; i < 256; i++)
+ {
+ unp2[0] = (char)i;
+ ft_putstr_non_printable(unp2);
+ }
+ ft_putstr_non_printable("Coucou\ntu vas bien ?");
+
+ return 0;
}