0
0
This commit is contained in:
Guy Baconniere
2021-08-20 10:02:38 +02:00
parent 5aa02c94b5
commit d30270c485
354 changed files with 0 additions and 0 deletions

23
C_02/Makefile Normal file
View File

@@ -0,0 +1,23 @@
#
# Copyright (c) 2021 Guy Baconniere.
#
## How to use this Makefile
#
# cd git
# mkdir ex00
# cd ex00
# make -f ../../Makefile ex00
#
clone:
@git clone git@vogsphere.42lausanne.ch:vogsphere/intra-uuid-0206809b-f597-4ba0-ab8d-b06ca894f9ce-3717791 git
cc:
@norminette -R CheckForbiddenSourceHeader
@gcc -Wall -Wextra -Werror -o a.out *.c
@./a.out
@rm -f a.out
all: clone

BIN
C_02/c-02.tar Normal file

Binary file not shown.

BIN
C_02/fr.subject.pdf Normal file

Binary file not shown.

39
C_02/git/ex00/ft_strcpy.c Normal file
View File

@@ -0,0 +1,39 @@
/* ************************************************************************** */
/* */
/* ::: :::::::: */
/* ft_strcpy.c :+: :+: :+: */
/* +:+ +:+ +:+ */
/* By: gbaconni <marvin@42lausanne.ch> +#+ +:+ +#+ */
/* +#+#+#+#+#+ +#+ */
/* Created: 2021/08/09 13:27:29 by gbaconni #+# #+# */
/* Updated: 2021/08/11 14:49:52 by gbaconni ### ########.fr */
/* */
/* ************************************************************************** */
#include <stdlib.h>
char *ft_strcpy(char *dest, char *src)
{
int i;
int src_size;
int dest_size;
src_size = 0;
while (src[src_size++] != '\0')
continue ;
dest_size = 0;
while (dest[dest_size++] != '\0')
continue ;
i = 0;
while (i < src_size)
{
dest[i] = src[i];
i++;
}
while (i < dest_size)
{
dest[i] = '\0';
i++;
}
return (dest);
}

33
C_02/git/ex00/main.c Normal file
View File

@@ -0,0 +1,33 @@
/* ************************************************************************** */
/* */
/* ::: :::::::: */
/* main.c :+: :+: :+: */
/* +:+ +:+ +:+ */
/* By: gbaconni <marvin@42lausanne.ch> +#+ +:+ +#+ */
/* +#+#+#+#+#+ +#+ */
/* Created: 2021/08/09 13:15:38 by gbaconni #+# #+# */
/* Updated: 2021/08/11 14:30:26 by gbaconni ### ########.fr */
/* */
/* ************************************************************************** */
#include <stdio.h>
#include <unistd.h>
#include <stdlib.h>
#include <string.h>
char *ft_strcpy(char *dest, char *src);
int main(void)
{
char src[32];
char dest[32];
char *result;
printf("Input [max 31]: ");
scanf("%s", src);
result = ft_strcpy(dest, src);
printf("src=%s dest=%s result=%s (ft_strcpy)\n", src, dest, result);
result = strcpy(dest, src);
printf("src=%s dest=%s result=%s (strcpy)\n", src, dest, result);
return (0);
}

8
C_02/git/ex00/main.sh Executable file
View File

@@ -0,0 +1,8 @@
#!/bin/sh
set -e
#norminette -R CheckForbiddenSourceHeader ft_*.c
norminette -R CheckForbiddenSourceHeader
gcc -Wall -Wextra -Werror -o a.out *.c
echo $(basename $PWD):
./a.out
rm -f a.out

View File

@@ -0,0 +1,29 @@
/* ************************************************************************** */
/* */
/* ::: :::::::: */
/* ft_strncpy.c :+: :+: :+: */
/* +:+ +:+ +:+ */
/* By: gbaconni <marvin@42lausanne.ch> +#+ +:+ +#+ */
/* +#+#+#+#+#+ +#+ */
/* Created: 2021/08/09 18:19:08 by gbaconni #+# #+# */
/* Updated: 2021/08/12 09:49:18 by gbaconni ### ########.fr */
/* */
/* ************************************************************************** */
char *ft_strncpy(char *dest, char *src, unsigned int n)
{
unsigned int i;
i = 0;
while (i < n && src[i] != '\0')
{
dest[i] = src[i];
i++;
}
while (i < n)
{
dest[i] = '\0';
i++;
}
return (dest);
}

37
C_02/git/ex01/main.c Normal file
View File

@@ -0,0 +1,37 @@
/* ************************************************************************** */
/* */
/* ::: :::::::: */
/* main.c :+: :+: :+: */
/* +:+ +:+ +:+ */
/* By: gbaconni <marvin@42lausanne.ch> +#+ +:+ +#+ */
/* +#+#+#+#+#+ +#+ */
/* Created: 2021/08/09 18:18:58 by gbaconni #+# #+# */
/* Updated: 2021/08/11 18:07:07 by gbaconni ### ########.fr */
/* */
/* ************************************************************************** */
#include <stdio.h>
#include <unistd.h>
#include <stdlib.h>
#include <string.h>
char *ft_strncpy(char *dest, char *src, unsigned int n);
int main(void)
{
char src[32];
char dest[64];
unsigned int n;
char *result;
n = 0;
printf("Input String [max 31]: ");
scanf("%s", src);
printf("Input Size: ");
scanf("%d", &n);
result = ft_strncpy(dest, src, n);
printf("src=%s dest=%s n=%d result=%s (ft_strncpy)\n", src, dest, n, result);
result = strncpy(dest, src, n);
printf("src=%s dest=%s n=%d result=%s (strncpy)\n", src, dest, n, result);
return (0);
}

8
C_02/git/ex01/main.sh Executable file
View File

@@ -0,0 +1,8 @@
#!/bin/sh
set -e
#norminette -R CheckForbiddenSourceHeader ft_*.c
norminette -R CheckForbiddenSourceHeader
gcc -Wall -Wextra -Werror -o a.out *.c
echo $(basename $PWD):
./a.out
rm -f a.out

BIN
C_02/git/ex02/._main.c Normal file

Binary file not shown.

View File

@@ -0,0 +1,33 @@
/* ************************************************************************** */
/* */
/* ::: :::::::: */
/* ft_str_is_alpha.c :+: :+: :+: */
/* +:+ +:+ +:+ */
/* By: gbaconni <marvin@42lausanne.ch> +#+ +:+ +#+ */
/* +#+#+#+#+#+ +#+ */
/* Created: 2021/08/09 17:43:26 by gbaconni #+# #+# */
/* Updated: 2021/08/10 09:58:08 by gbaconni ### ########.fr */
/* */
/* ************************************************************************** */
int ft_str_is_alpha(char *str)
{
int i;
int r;
int size;
size = 0;
while (str[size] != '\0')
{
size++;
}
r = 1;
i = 0;
while (i < size)
{
r &= (str[i] >= 'a' && str[i] <= 'z') \
|| (str[i] >= 'A' && str[i] <= 'Z');
i++;
}
return (r);
}

30
C_02/git/ex02/main.c Normal file
View File

@@ -0,0 +1,30 @@
/* ************************************************************************** */
/* */
/* ::: :::::::: */
/* main.c :+: :+: :+: */
/* +:+ +:+ +:+ */
/* By: gbaconni <marvin@42lausanne.ch> +#+ +:+ +#+ */
/* +#+#+#+#+#+ +#+ */
/* Created: 2021/08/09 17:44:56 by gbaconni #+# #+# */
/* Updated: 2021/08/09 17:48:47 by gbaconni ### ########.fr */
/* */
/* ************************************************************************** */
#include <stdio.h>
#include <unistd.h>
#include <stdlib.h>
#include <string.h>
int ft_str_is_alpha(char *str);
int main(void)
{
char str[32];
int result;
printf("Input [max 31]: ");
scanf("%s", str);
result = ft_str_is_alpha(str);
printf("str=%s result=%d\n", str, result);
return (0);
}

8
C_02/git/ex02/main.sh Executable file
View File

@@ -0,0 +1,8 @@
#!/bin/sh
set -e
#norminette -R CheckForbiddenSourceHeader ft_*.c
norminette -R CheckForbiddenSourceHeader
gcc -Wall -Wextra -Werror -o a.out *.c
echo $(basename $PWD):
./a.out
rm -f a.out

BIN
C_02/git/ex03/._main.c Normal file

Binary file not shown.

View File

@@ -0,0 +1,32 @@
/* ************************************************************************** */
/* */
/* ::: :::::::: */
/* ft_str_is_numeric.c :+: :+: :+: */
/* +:+ +:+ +:+ */
/* By: gbaconni <marvin@42lausanne.ch> +#+ +:+ +#+ */
/* +#+#+#+#+#+ +#+ */
/* Created: 2021/08/10 10:14:17 by gbaconni #+# #+# */
/* Updated: 2021/08/10 10:15:38 by gbaconni ### ########.fr */
/* */
/* ************************************************************************** */
int ft_str_is_numeric(char *str)
{
int i;
int r;
int size;
size = 0;
while (str[size] != '\0')
{
size++;
}
r = 1;
i = 0;
while (i < size)
{
r &= (str[i] >= '0' && str[i] <= '9');
i++;
}
return (r);
}

30
C_02/git/ex03/main.c Normal file
View File

@@ -0,0 +1,30 @@
/* ************************************************************************** */
/* */
/* ::: :::::::: */
/* main.c :+: :+: :+: */
/* +:+ +:+ +:+ */
/* By: gbaconni <marvin@42lausanne.ch> +#+ +:+ +#+ */
/* +#+#+#+#+#+ +#+ */
/* Created: 2021/08/10 10:13:03 by gbaconni #+# #+# */
/* Updated: 2021/08/10 10:15:13 by gbaconni ### ########.fr */
/* */
/* ************************************************************************** */
#include <stdio.h>
#include <unistd.h>
#include <stdlib.h>
#include <string.h>
int ft_str_is_numeric(char *str);
int main(void)
{
char str[32];
int result;
printf("Input [max 31]: ");
scanf("%s", str);
result = ft_str_is_numeric(str);
printf("str=%s result=%d\n", str, result);
return (0);
}

8
C_02/git/ex03/main.sh Executable file
View File

@@ -0,0 +1,8 @@
#!/bin/sh
set -e
#norminette -R CheckForbiddenSourceHeader ft_*.c
norminette -R CheckForbiddenSourceHeader
gcc -Wall -Wextra -Werror -o a.out *.c
echo $(basename $PWD):
./a.out
rm -f a.out

BIN
C_02/git/ex04/._main.c Normal file

Binary file not shown.

View File

@@ -0,0 +1,32 @@
/* ************************************************************************** */
/* */
/* ::: :::::::: */
/* ft_str_is_lowercase.c :+: :+: :+: */
/* +:+ +:+ +:+ */
/* By: gbaconni <marvin@42lausanne.ch> +#+ +:+ +#+ */
/* +#+#+#+#+#+ +#+ */
/* Created: 2021/08/10 10:45:53 by gbaconni #+# #+# */
/* Updated: 2021/08/10 10:45:56 by gbaconni ### ########.fr */
/* */
/* ************************************************************************** */
int ft_str_is_lowercase(char *str)
{
int i;
int r;
int size;
size = 0;
while (str[size] != '\0')
{
size++;
}
r = 1;
i = 0;
while (i < size)
{
r &= (str[i] >= 'a' && str[i] <= 'z');
i++;
}
return (r);
}

30
C_02/git/ex04/main.c Normal file
View File

@@ -0,0 +1,30 @@
/* ************************************************************************** */
/* */
/* ::: :::::::: */
/* main.c :+: :+: :+: */
/* +:+ +:+ +:+ */
/* By: gbaconni <marvin@42lausanne.ch> +#+ +:+ +#+ */
/* +#+#+#+#+#+ +#+ */
/* Created: 2021/08/10 10:44:33 by gbaconni #+# #+# */
/* Updated: 2021/08/10 10:44:58 by gbaconni ### ########.fr */
/* */
/* ************************************************************************** */
#include <stdio.h>
#include <unistd.h>
#include <stdlib.h>
#include <string.h>
int ft_str_is_lowercase(char *str);
int main(void)
{
char str[32];
int result;
printf("Input [max 31]: ");
scanf("%s", str);
result = ft_str_is_lowercase(str);
printf("str=%s result=%d\n", str, result);
return (0);
}

8
C_02/git/ex04/main.sh Executable file
View File

@@ -0,0 +1,8 @@
#!/bin/sh
set -e
#norminette -R CheckForbiddenSourceHeader ft_*.c
norminette -R CheckForbiddenSourceHeader
gcc -Wall -Wextra -Werror -o a.out *.c
echo $(basename $PWD):
./a.out
rm -f a.out

BIN
C_02/git/ex05/._main.c Normal file

Binary file not shown.

View File

@@ -0,0 +1,32 @@
/* ************************************************************************** */
/* */
/* ::: :::::::: */
/* ft_str_is_uppercase.c :+: :+: :+: */
/* +:+ +:+ +:+ */
/* By: gbaconni <marvin@42lausanne.ch> +#+ +:+ +#+ */
/* +#+#+#+#+#+ +#+ */
/* Created: 2021/08/10 10:47:51 by gbaconni #+# #+# */
/* Updated: 2021/08/10 10:48:16 by gbaconni ### ########.fr */
/* */
/* ************************************************************************** */
int ft_str_is_uppercase(char *str)
{
int i;
int r;
int size;
size = 0;
while (str[size] != '\0')
{
size++;
}
r = 1;
i = 0;
while (i < size)
{
r &= (str[i] >= 'A' && str[i] <= 'Z');
i++;
}
return (r);
}

30
C_02/git/ex05/main.c Normal file
View File

@@ -0,0 +1,30 @@
/* ************************************************************************** */
/* */
/* ::: :::::::: */
/* main.c :+: :+: :+: */
/* +:+ +:+ +:+ */
/* By: gbaconni <marvin@42lausanne.ch> +#+ +:+ +#+ */
/* +#+#+#+#+#+ +#+ */
/* Created: 2021/08/10 10:48:33 by gbaconni #+# #+# */
/* Updated: 2021/08/10 10:48:53 by gbaconni ### ########.fr */
/* */
/* ************************************************************************** */
#include <stdio.h>
#include <unistd.h>
#include <stdlib.h>
#include <string.h>
int ft_str_is_uppercase(char *str);
int main(void)
{
char str[32];
int result;
printf("Input [max 31]: ");
scanf("%s", str);
result = ft_str_is_uppercase(str);
printf("str=%s result=%d\n", str, result);
return (0);
}

8
C_02/git/ex05/main.sh Executable file
View File

@@ -0,0 +1,8 @@
#!/bin/sh
set -e
#norminette -R CheckForbiddenSourceHeader ft_*.c
norminette -R CheckForbiddenSourceHeader
gcc -Wall -Wextra -Werror -o a.out *.c
echo $(basename $PWD):
./a.out
rm -f a.out

BIN
C_02/git/ex06/._main.c Normal file

Binary file not shown.

View File

@@ -0,0 +1,32 @@
/* ************************************************************************** */
/* */
/* ::: :::::::: */
/* ft_str_is_printable.c :+: :+: :+: */
/* +:+ +:+ +:+ */
/* By: gbaconni <marvin@42lausanne.ch> +#+ +:+ +#+ */
/* +#+#+#+#+#+ +#+ */
/* Created: 2021/08/10 11:05:18 by gbaconni #+# #+# */
/* Updated: 2021/08/10 11:10:03 by gbaconni ### ########.fr */
/* */
/* ************************************************************************** */
int ft_str_is_printable(char *str)
{
int i;
int r;
int size;
size = 0;
while (str[size] != '\0')
{
size++;
}
r = 1;
i = 0;
while (i < size)
{
r &= (str[i] >= ' ' && str[i] <= '~');
i++;
}
return (r);
}

30
C_02/git/ex06/main.c Normal file
View File

@@ -0,0 +1,30 @@
/* ************************************************************************** */
/* */
/* ::: :::::::: */
/* main.c :+: :+: :+: */
/* +:+ +:+ +:+ */
/* By: gbaconni <marvin@42lausanne.ch> +#+ +:+ +#+ */
/* +#+#+#+#+#+ +#+ */
/* Created: 2021/08/10 11:05:36 by gbaconni #+# #+# */
/* Updated: 2021/08/10 11:05:59 by gbaconni ### ########.fr */
/* */
/* ************************************************************************** */
#include <stdio.h>
#include <unistd.h>
#include <stdlib.h>
#include <string.h>
int ft_str_is_printable(char *str);
int main(void)
{
char str[32];
int result;
printf("Input [max 31]: ");
scanf("%s", str);
result = ft_str_is_printable(str);
printf("str=%s result=%d\n", str, result);
return (0);
}

8
C_02/git/ex06/main.sh Executable file
View File

@@ -0,0 +1,8 @@
#!/bin/sh
set -e
#norminette -R CheckForbiddenSourceHeader ft_*.c
norminette -R CheckForbiddenSourceHeader
gcc -Wall -Wextra -Werror -o a.out *.c
echo $(basename $PWD):
./a.out
rm -f a.out

View File

@@ -0,0 +1,29 @@
/* ************************************************************************** */
/* */
/* ::: :::::::: */
/* ft_strupcase.c :+: :+: :+: */
/* +:+ +:+ +:+ */
/* By: gbaconni <marvin@42lausanne.ch> +#+ +:+ +#+ */
/* +#+#+#+#+#+ +#+ */
/* Created: 2021/08/10 11:15:09 by gbaconni #+# #+# */
/* Updated: 2021/08/10 11:25:39 by gbaconni ### ########.fr */
/* */
/* ************************************************************************** */
char *ft_strupcase(char *str)
{
int i;
int size;
size = 0;
while (str[size++] != '\0')
continue ;
i = 0;
while (i < size)
{
if (str[i] >= 'a' && str[i] <= 'z')
str[i] = str[i] - 32;
i++;
}
return (str);
}

31
C_02/git/ex07/main.c Normal file
View File

@@ -0,0 +1,31 @@
/* ************************************************************************** */
/* */
/* ::: :::::::: */
/* main.c :+: :+: :+: */
/* +:+ +:+ +:+ */
/* By: gbaconni <marvin@42lausanne.ch> +#+ +:+ +#+ */
/* +#+#+#+#+#+ +#+ */
/* Created: 2021/08/10 11:12:33 by gbaconni #+# #+# */
/* Updated: 2021/08/10 11:25:31 by gbaconni ### ########.fr */
/* */
/* ************************************************************************** */
#include <stdio.h>
#include <unistd.h>
#include <stdlib.h>
#include <string.h>
char *ft_strupcase(char *str);
int main(void)
{
char str[32];
char *result;
printf("Input [max 31]: ");
scanf("%s", str);
printf("str=%s\n", str);
result = ft_strupcase(str);
printf("str=%s result=%s\n", str, result);
return (0);
}

8
C_02/git/ex07/main.sh Executable file
View File

@@ -0,0 +1,8 @@
#!/bin/sh
set -e
#norminette -R CheckForbiddenSourceHeader ft_*.c
norminette -R CheckForbiddenSourceHeader
gcc -Wall -Wextra -Werror -o a.out *.c
echo $(basename $PWD):
./a.out
rm -f a.out

View File

@@ -0,0 +1,29 @@
/* ************************************************************************** */
/* */
/* ::: :::::::: */
/* ft_strlowcase.c :+: :+: :+: */
/* +:+ +:+ +:+ */
/* By: gbaconni <marvin@42lausanne.ch> +#+ +:+ +#+ */
/* +#+#+#+#+#+ +#+ */
/* Created: 2021/08/10 11:34:35 by gbaconni #+# #+# */
/* Updated: 2021/08/10 11:40:03 by gbaconni ### ########.fr */
/* */
/* ************************************************************************** */
char *ft_strlowcase(char *str)
{
int i;
int size;
size = 0;
while (str[size++] != '\0')
continue ;
i = 0;
while (i < size)
{
if (str[i] >= 'A' && str[i] <= 'Z')
str[i] += 32;
i++;
}
return (str);
}

31
C_02/git/ex08/main.c Normal file
View File

@@ -0,0 +1,31 @@
/* ************************************************************************** */
/* */
/* ::: :::::::: */
/* main.c :+: :+: :+: */
/* +:+ +:+ +:+ */
/* By: gbaconni <marvin@42lausanne.ch> +#+ +:+ +#+ */
/* +#+#+#+#+#+ +#+ */
/* Created: 2021/08/10 11:40:15 by gbaconni #+# #+# */
/* Updated: 2021/08/10 11:40:52 by gbaconni ### ########.fr */
/* */
/* ************************************************************************** */
#include <stdio.h>
#include <unistd.h>
#include <stdlib.h>
#include <string.h>
char *ft_strlowcase(char *str);
int main(void)
{
char str[32];
char *result;
printf("Input [max 31]: ");
scanf("%s", str);
printf("str=%s\n", str);
result = ft_strlowcase(str);
printf("str=%s result=%s\n", str, result);
return (0);
}

8
C_02/git/ex08/main.sh Executable file
View File

@@ -0,0 +1,8 @@
#!/bin/sh
set -e
#norminette -R CheckForbiddenSourceHeader ft_*.c
norminette -R CheckForbiddenSourceHeader
gcc -Wall -Wextra -Werror -o a.out *.c
echo $(basename $PWD):
./a.out
rm -f a.out

View File

@@ -0,0 +1,37 @@
/* ************************************************************************** */
/* */
/* ::: :::::::: */
/* ft_strcapitalize.c :+: :+: :+: */
/* +:+ +:+ +:+ */
/* By: gbaconni <marvin@42lausanne.ch> +#+ +:+ +#+ */
/* +#+#+#+#+#+ +#+ */
/* Created: 2021/08/10 11:43:39 by gbaconni #+# #+# */
/* Updated: 2021/08/12 09:47:40 by gbaconni ### ########.fr */
/* */
/* ************************************************************************** */
char *ft_strcapitalize(char *str)
{
int i;
char prev_c;
prev_c = ' ';
i = 0;
while (str[i] != '\0')
{
if (\
(\
(prev_c >= ' ' && prev_c <= '/') || \
(prev_c >= ':' && prev_c <= '@') || \
(prev_c >= '[' && prev_c <= '`') || \
(prev_c >= '{' && prev_c <= '~') \
) && \
(str[i] >= 'a' && str[i] <= 'z') \
)
str[i] -= 32;
else if (str[i] >= 'A' && str[i] <= 'Z')
str[i] += 32;
prev_c = str[i++];
}
return (str);
}

31
C_02/git/ex09/main.c Normal file
View File

@@ -0,0 +1,31 @@
/* ************************************************************************** */
/* */
/* ::: :::::::: */
/* main.c :+: :+: :+: */
/* +:+ +:+ +:+ */
/* By: gbaconni <marvin@42lausanne.ch> +#+ +:+ +#+ */
/* +#+#+#+#+#+ +#+ */
/* Created: 2021/08/10 11:43:49 by gbaconni #+# #+# */
/* Updated: 2021/08/10 11:55:53 by gbaconni ### ########.fr */
/* */
/* ************************************************************************** */
#include <stdio.h>
#include <unistd.h>
#include <stdlib.h>
#include <string.h>
char *ft_strcapitalize(char *str);
int main(void)
{
char str[256];
char *result;
printf("Input [max 255]: ");
scanf("%255[^\n]", str);
printf("str=%s\n", str);
result = ft_strcapitalize(str);
printf("str=%s result=%s\n", str, result);
return (0);
}

8
C_02/git/ex09/main.sh Executable file
View File

@@ -0,0 +1,8 @@
#!/bin/sh
set -e
#norminette -R CheckForbiddenSourceHeader ft_*.c
norminette -R CheckForbiddenSourceHeader
gcc -Wall -Wextra -Werror -o a.out *.c
echo $(basename $PWD):
./a.out
rm -f a.out

BIN
C_02/git/ex10/._main.c Normal file

Binary file not shown.

View File

@@ -0,0 +1,29 @@
/* ************************************************************************** */
/* */
/* ::: :::::::: */
/* ft_strlcpy.c :+: :+: :+: */
/* +:+ +:+ +:+ */
/* By: gbaconni <marvin@42lausanne.ch> +#+ +:+ +#+ */
/* +#+#+#+#+#+ +#+ */
/* Created: 2021/08/11 10:20:13 by gbaconni #+# #+# */
/* Updated: 2021/08/12 10:40:17 by gbaconni ### ########.fr */
/* */
/* ************************************************************************** */
unsigned int ft_strlcpy(char *dest, char *src, unsigned int size)
{
char *p_dest;
char *p_src;
unsigned int n;
p_dest = dest;
p_src = src;
n = size;
while (n != 0 && --n != 0 && *p_src != '\0')
*p_dest++ = *p_src++;
if (size != 0)
*p_dest = '\0';
while (*p_src++)
continue ;
return (p_src - src - 1);
}

36
C_02/git/ex10/main.c Normal file
View File

@@ -0,0 +1,36 @@
/* ************************************************************************** */
/* */
/* ::: :::::::: */
/* main.c :+: :+: :+: */
/* +:+ +:+ +:+ */
/* By: gbaconni <marvin@42lausanne.ch> +#+ +:+ +#+ */
/* +#+#+#+#+#+ +#+ */
/* Created: 2021/08/11 09:43:24 by gbaconni #+# #+# */
/* Updated: 2021/08/11 10:43:00 by gbaconni ### ########.fr */
/* */
/* ************************************************************************** */
#include <stdio.h>
#include <unistd.h>
#include <stdlib.h>
#include <string.h>
unsigned int ft_strlcpy(char *dest, char *src, unsigned int size);
int main(void)
{
unsigned int size;
unsigned int result;
char src[16];
char dest[16];
printf("Input Text [max 15]: ");
scanf("%15[^\n]", src);
printf("Input Size: ");
scanf("%u", &size);
result = ft_strlcpy(dest, src, size);
printf("src=%s dest=%s result=%d (ft_strlcpy)\n", src, dest, result);
result = strlcpy(dest, src, size);
printf("src=%s dest=%s result=%d (strlcpy)\n", src, dest, result);
return (0);
}

8
C_02/git/ex10/main.sh Executable file
View File

@@ -0,0 +1,8 @@
#!/bin/sh
set -e
#norminette -R CheckForbiddenSourceHeader ft_*.c
norminette -R CheckForbiddenSourceHeader
gcc -Wall -Wextra -Werror -o a.out *.c
echo $(basename $PWD):
./a.out
rm -f a.out

BIN
C_02/git/ex11/._main.c Normal file

Binary file not shown.

View File

@@ -0,0 +1,40 @@
/* ************************************************************************** */
/* */
/* ::: :::::::: */
/* ft_putstr_non_printable.c :+: :+: :+: */
/* +:+ +:+ +:+ */
/* By: gbaconni <marvin@42lausanne.ch> +#+ +:+ +#+ */
/* +#+#+#+#+#+ +#+ */
/* Created: 2021/08/11 11:29:09 by gbaconni #+# #+# */
/* Updated: 2021/08/12 11:40:23 by gbaconni ### ########.fr */
/* */
/* ************************************************************************** */
#include <unistd.h>
#include <stdio.h>
// for i in {0..127}; do printf "%02x" $i; done
void ft_putstr_non_printable(char *str)
{
const char *hex = "\
000102030405060708090a0b0c0d0e0f\
101112131415161718191a1b1c1d1e1f\
202122232425262728292a2b2c2d2e2f\
303132333435363738393a3b3c3d3e3f\
404142434445464748494a4b4c4d4e4f\
505152535455565758595a5b5c5d5e5f\
606162636465666768696a6b6c6d6e6f\
707172737475767778797a7b7c7d7e7f";
while (*str != '\0')
{
if (*str >= ' ' && *str != '~' + 1)
write(1, str, 1);
else
{
write(1, "\\", 1);
write(1, hex + *str * 2, 2);
}
str++;
}
}

32
C_02/git/ex11/main.c Normal file
View File

@@ -0,0 +1,32 @@
/* ************************************************************************** */
/* */
/* ::: :::::::: */
/* main.c :+: :+: :+: */
/* +:+ +:+ +:+ */
/* By: gbaconni <marvin@42lausanne.ch> +#+ +:+ +#+ */
/* +#+#+#+#+#+ +#+ */
/* Created: 2021/08/11 11:24:31 by gbaconni #+# #+# */
/* Updated: 2021/08/12 11:44:53 by gbaconni ### ########.fr */
/* */
/* ************************************************************************** */
#include <stdio.h>
#include <unistd.h>
#include <stdlib.h>
#include <string.h>
void ft_putstr_non_printable(char *str);
int main(void)
{
const char *test = "Coucou\ntu vas bien ?";
char str[256];
printf("Input [max 255]: ");
scanf("%255[^\n]", str);
printf("str=%s\n", str);
ft_putstr_non_printable(str);
printf("test=%s\n", test);
ft_putstr_non_printable((char *)test);
return (0);
}

8
C_02/git/ex11/main.sh Executable file
View File

@@ -0,0 +1,8 @@
#!/bin/sh
set -e
#norminette -R CheckForbiddenSourceHeader ft_*.c
norminette -R CheckForbiddenSourceHeader
gcc -Wall -Wextra -Werror -o a.out *.c
echo $(basename $PWD):
./a.out
rm -f a.out

7
C_02/git_old/.gitignore vendored Normal file
View File

@@ -0,0 +1,7 @@
**/main.c
**/main.sh
**/a.out
**/a.sh
**/Makefile
**/*.swp
**/*~

View File

@@ -0,0 +1,39 @@
/* ************************************************************************** */
/* */
/* ::: :::::::: */
/* ft_strcpy.c :+: :+: :+: */
/* +:+ +:+ +:+ */
/* By: gbaconni <marvin@42lausanne.ch> +#+ +:+ +#+ */
/* +#+#+#+#+#+ +#+ */
/* Created: 2021/08/09 13:27:29 by gbaconni #+# #+# */
/* Updated: 2021/08/11 14:49:52 by gbaconni ### ########.fr */
/* */
/* ************************************************************************** */
#include <stdlib.h>
char *ft_strcpy(char *dest, char *src)
{
int i;
int src_size;
int dest_size;
src_size = 0;
while (src[src_size++] != '\0')
continue ;
dest_size = 0;
while (dest[dest_size++] != '\0')
continue ;
i = 0;
while (i < src_size)
{
dest[i] = src[i];
i++;
}
while (i < dest_size)
{
dest[i] = '\0';
i++;
}
return (dest);
}

View File

@@ -0,0 +1,37 @@
/* ************************************************************************** */
/* */
/* ::: :::::::: */
/* ft_strncpy.c :+: :+: :+: */
/* +:+ +:+ +:+ */
/* By: gbaconni <marvin@42lausanne.ch> +#+ +:+ +#+ */
/* +#+#+#+#+#+ +#+ */
/* Created: 2021/08/09 18:19:08 by gbaconni #+# #+# */
/* Updated: 2021/08/11 18:05:56 by gbaconni ### ########.fr */
/* */
/* ************************************************************************** */
#include <stdlib.h>
#include <stdio.h>
char *ft_strncpy(char *dest, char *src, unsigned int n)
{
unsigned int i;
unsigned int dest_size;
dest_size = 0;
while (dest[dest_size++] != '\0')
continue ;
i = 0;
while (n > 0 && i < n)
{
dest[i] = src[i];
i++;
}
while (i < dest_size)
{
printf("Hello\n");
dest[i] = '\0';
i++;
}
return (dest);
}

View File

@@ -0,0 +1,33 @@
/* ************************************************************************** */
/* */
/* ::: :::::::: */
/* ft_str_is_alpha.c :+: :+: :+: */
/* +:+ +:+ +:+ */
/* By: gbaconni <marvin@42lausanne.ch> +#+ +:+ +#+ */
/* +#+#+#+#+#+ +#+ */
/* Created: 2021/08/09 17:43:26 by gbaconni #+# #+# */
/* Updated: 2021/08/10 09:58:08 by gbaconni ### ########.fr */
/* */
/* ************************************************************************** */
int ft_str_is_alpha(char *str)
{
int i;
int r;
int size;
size = 0;
while (str[size] != '\0')
{
size++;
}
r = 1;
i = 0;
while (i < size)
{
r &= (str[i] >= 'a' && str[i] <= 'z') \
|| (str[i] >= 'A' && str[i] <= 'Z');
i++;
}
return (r);
}

View File

@@ -0,0 +1,32 @@
/* ************************************************************************** */
/* */
/* ::: :::::::: */
/* ft_str_is_numeric.c :+: :+: :+: */
/* +:+ +:+ +:+ */
/* By: gbaconni <marvin@42lausanne.ch> +#+ +:+ +#+ */
/* +#+#+#+#+#+ +#+ */
/* Created: 2021/08/10 10:14:17 by gbaconni #+# #+# */
/* Updated: 2021/08/10 10:15:38 by gbaconni ### ########.fr */
/* */
/* ************************************************************************** */
int ft_str_is_numeric(char *str)
{
int i;
int r;
int size;
size = 0;
while (str[size] != '\0')
{
size++;
}
r = 1;
i = 0;
while (i < size)
{
r &= (str[i] >= '0' && str[i] <= '9');
i++;
}
return (r);
}

View File

@@ -0,0 +1,32 @@
/* ************************************************************************** */
/* */
/* ::: :::::::: */
/* ft_str_is_lowercase.c :+: :+: :+: */
/* +:+ +:+ +:+ */
/* By: gbaconni <marvin@42lausanne.ch> +#+ +:+ +#+ */
/* +#+#+#+#+#+ +#+ */
/* Created: 2021/08/10 10:45:53 by gbaconni #+# #+# */
/* Updated: 2021/08/10 10:45:56 by gbaconni ### ########.fr */
/* */
/* ************************************************************************** */
int ft_str_is_lowercase(char *str)
{
int i;
int r;
int size;
size = 0;
while (str[size] != '\0')
{
size++;
}
r = 1;
i = 0;
while (i < size)
{
r &= (str[i] >= 'a' && str[i] <= 'z');
i++;
}
return (r);
}

View File

@@ -0,0 +1,32 @@
/* ************************************************************************** */
/* */
/* ::: :::::::: */
/* ft_str_is_uppercase.c :+: :+: :+: */
/* +:+ +:+ +:+ */
/* By: gbaconni <marvin@42lausanne.ch> +#+ +:+ +#+ */
/* +#+#+#+#+#+ +#+ */
/* Created: 2021/08/10 10:47:51 by gbaconni #+# #+# */
/* Updated: 2021/08/10 10:48:16 by gbaconni ### ########.fr */
/* */
/* ************************************************************************** */
int ft_str_is_uppercase(char *str)
{
int i;
int r;
int size;
size = 0;
while (str[size] != '\0')
{
size++;
}
r = 1;
i = 0;
while (i < size)
{
r &= (str[i] >= 'A' && str[i] <= 'Z');
i++;
}
return (r);
}

View File

@@ -0,0 +1,32 @@
/* ************************************************************************** */
/* */
/* ::: :::::::: */
/* ft_str_is_printable.c :+: :+: :+: */
/* +:+ +:+ +:+ */
/* By: gbaconni <marvin@42lausanne.ch> +#+ +:+ +#+ */
/* +#+#+#+#+#+ +#+ */
/* Created: 2021/08/10 11:05:18 by gbaconni #+# #+# */
/* Updated: 2021/08/10 11:10:03 by gbaconni ### ########.fr */
/* */
/* ************************************************************************** */
int ft_str_is_printable(char *str)
{
int i;
int r;
int size;
size = 0;
while (str[size] != '\0')
{
size++;
}
r = 1;
i = 0;
while (i < size)
{
r &= (str[i] >= ' ' && str[i] <= '~');
i++;
}
return (r);
}

View File

@@ -0,0 +1,29 @@
/* ************************************************************************** */
/* */
/* ::: :::::::: */
/* ft_strupcase.c :+: :+: :+: */
/* +:+ +:+ +:+ */
/* By: gbaconni <marvin@42lausanne.ch> +#+ +:+ +#+ */
/* +#+#+#+#+#+ +#+ */
/* Created: 2021/08/10 11:15:09 by gbaconni #+# #+# */
/* Updated: 2021/08/10 11:25:39 by gbaconni ### ########.fr */
/* */
/* ************************************************************************** */
char *ft_strupcase(char *str)
{
int i;
int size;
size = 0;
while (str[size++] != '\0')
continue ;
i = 0;
while (i < size)
{
if (str[i] >= 'a' && str[i] <= 'z')
str[i] = str[i] - 32;
i++;
}
return (str);
}

View File

@@ -0,0 +1,29 @@
/* ************************************************************************** */
/* */
/* ::: :::::::: */
/* ft_strlowcase.c :+: :+: :+: */
/* +:+ +:+ +:+ */
/* By: gbaconni <marvin@42lausanne.ch> +#+ +:+ +#+ */
/* +#+#+#+#+#+ +#+ */
/* Created: 2021/08/10 11:34:35 by gbaconni #+# #+# */
/* Updated: 2021/08/10 11:40:03 by gbaconni ### ########.fr */
/* */
/* ************************************************************************** */
char *ft_strlowcase(char *str)
{
int i;
int size;
size = 0;
while (str[size++] != '\0')
continue ;
i = 0;
while (i < size)
{
if (str[i] >= 'A' && str[i] <= 'Z')
str[i] += 32;
i++;
}
return (str);
}

View File

@@ -0,0 +1,39 @@
/* ************************************************************************** */
/* */
/* ::: :::::::: */
/* ft_strcapitalize.c :+: :+: :+: */
/* +:+ +:+ +:+ */
/* By: gbaconni <marvin@42lausanne.ch> +#+ +:+ +#+ */
/* +#+#+#+#+#+ +#+ */
/* Created: 2021/08/10 11:43:39 by gbaconni #+# #+# */
/* Updated: 2021/08/11 09:11:42 by gbaconni ### ########.fr */
/* */
/* ************************************************************************** */
char *ft_strcapitalize(char *str)
{
int i;
int size;
char prev_c;
size = 0;
while (str[size++] != '\0')
continue ;
prev_c = ' ';
i = 0;
while (i < size - 1)
{
if (\
(str[i] >= 'a' && str[i] <= 'z') && \
(\
(prev_c >= ' ' && prev_c <= '/') || \
(prev_c >= ':' && prev_c <= '@') || \
(prev_c >= '[' && prev_c <= '`') || \
(prev_c >= '{' && prev_c <= '~') \
) \
)
str[i] -= 32;
prev_c = str[i++];
}
return (str);
}

View File

@@ -0,0 +1,37 @@
/* ************************************************************************** */
/* */
/* ::: :::::::: */
/* ft_strlcpy.c :+: :+: :+: */
/* +:+ +:+ +:+ */
/* By: gbaconni <marvin@42lausanne.ch> +#+ +:+ +#+ */
/* +#+#+#+#+#+ +#+ */
/* Created: 2021/08/11 10:20:13 by gbaconni #+# #+# */
/* Updated: 2021/08/11 15:36:08 by gbaconni ### ########.fr */
/* */
/* ************************************************************************** */
unsigned int ft_strlcpy(char *dest, char *src, unsigned int size)
{
unsigned int i;
unsigned int src_size;
unsigned int dest_size;
src_size = 0;
while (src[src_size++] != '\0')
continue ;
dest_size = 0;
while (dest[dest_size++] != '\0')
continue ;
i = 0;
while (size > 0 && i < size - 1)
{
dest[i] = src[i];
i++;
}
while (i < dest_size)
{
dest[i] = '\0';
i++;
}
return (--src_size);
}

View File

@@ -0,0 +1,59 @@
/* ************************************************************************** */
/* */
/* ::: :::::::: */
/* ft_putstr_non_printable.c :+: :+: :+: */
/* +:+ +:+ +:+ */
/* By: gbaconni <marvin@42lausanne.ch> +#+ +:+ +#+ */
/* +#+#+#+#+#+ +#+ */
/* Created: 2021/08/11 11:29:09 by gbaconni #+# #+# */
/* Updated: 2021/08/11 16:56:40 by gbaconni ### ########.fr */
/* */
/* ************************************************************************** */
#include <unistd.h>
#include <stdio.h>
// for i in {0..255}; do printf "%02x" $i; done
void ft_putstr_non_printable(char *str)
{
int size;
const char *hex = "000102030405060708090a\
0b0c0d0e0f101112131415\
161718191a1b1c1d1e1f20\
2122232425262728292a2b\
2c2d2e2f30313233343536\
3738393a3b3c3d3e3f4041\
42434445464748494a4b4c\
4d4e4f5051525354555657\
58595a5b5c5d5e5f606162\
636465666768696a6b6c6d\
6e6f707172737475767778\
797a7b7c7d7e7f80818283\
8485868788898a8b8c8d8e\
8f90919293949596979899\
9a9b9c9d9e9fa0a1a2a3a4\
a5a6a7a8a9aaabacadaeaf\
b0b1b2b3b4b5b6b7b8b9ba\
bbbcbdbebfc0c1c2c3c4c5\
c6c7c8c9cacbcccdcecfd0\
d1d2d3d4d5d6d7d8d9dadb\
dcdddedfe0e1e2e3e4e5e6\
e7e8e9eaebecedeeeff0f1\
f2f3f4f5f6f7f8f9fafbfc\
fdfeff";
size = 0;
while (str[size++] != '\0')
continue ;
while (--size)
{
if (*str >= ' ' && *str <= '~')
write(1, str, 1);
else
{
write(1, "\\", 1);
write(1, hex + *str * 2, 2);
}
str++;
}
}

7
C_02/git_todo/.gitignore vendored Normal file
View File

@@ -0,0 +1,7 @@
**/main.c
**/main.sh
**/a.out
**/a.sh
**/Makefile
**/*.swp
**/*~

View File

@@ -0,0 +1,39 @@
/* ************************************************************************** */
/* */
/* ::: :::::::: */
/* ft_strcpy.c :+: :+: :+: */
/* +:+ +:+ +:+ */
/* By: gbaconni <marvin@42lausanne.ch> +#+ +:+ +#+ */
/* +#+#+#+#+#+ +#+ */
/* Created: 2021/08/09 13:27:29 by gbaconni #+# #+# */
/* Updated: 2021/08/11 14:49:52 by gbaconni ### ########.fr */
/* */
/* ************************************************************************** */
#include <stdlib.h>
char *ft_strcpy(char *dest, char *src)
{
int i;
int src_size;
int dest_size;
src_size = 0;
while (src[src_size++] != '\0')
continue ;
dest_size = 0;
while (dest[dest_size++] != '\0')
continue ;
i = 0;
while (i < src_size)
{
dest[i] = src[i];
i++;
}
while (i < dest_size)
{
dest[i] = '\0';
i++;
}
return (dest);
}

View File

@@ -0,0 +1,29 @@
/* ************************************************************************** */
/* */
/* ::: :::::::: */
/* ft_strncpy.c :+: :+: :+: */
/* +:+ +:+ +:+ */
/* By: gbaconni <marvin@42lausanne.ch> +#+ +:+ +#+ */
/* +#+#+#+#+#+ +#+ */
/* Created: 2021/08/09 18:19:08 by gbaconni #+# #+# */
/* Updated: 2021/08/12 09:49:18 by gbaconni ### ########.fr */
/* */
/* ************************************************************************** */
char *ft_strncpy(char *dest, char *src, unsigned int n)
{
unsigned int i;
i = 0;
while (i < n && src[i] != '\0')
{
dest[i] = src[i];
i++;
}
while (i < n)
{
dest[i] = '\0';
i++;
}
return (dest);
}

View File

@@ -0,0 +1,33 @@
/* ************************************************************************** */
/* */
/* ::: :::::::: */
/* ft_str_is_alpha.c :+: :+: :+: */
/* +:+ +:+ +:+ */
/* By: gbaconni <marvin@42lausanne.ch> +#+ +:+ +#+ */
/* +#+#+#+#+#+ +#+ */
/* Created: 2021/08/09 17:43:26 by gbaconni #+# #+# */
/* Updated: 2021/08/10 09:58:08 by gbaconni ### ########.fr */
/* */
/* ************************************************************************** */
int ft_str_is_alpha(char *str)
{
int i;
int r;
int size;
size = 0;
while (str[size] != '\0')
{
size++;
}
r = 1;
i = 0;
while (i < size)
{
r &= (str[i] >= 'a' && str[i] <= 'z') \
|| (str[i] >= 'A' && str[i] <= 'Z');
i++;
}
return (r);
}

View File

@@ -0,0 +1,32 @@
/* ************************************************************************** */
/* */
/* ::: :::::::: */
/* ft_str_is_numeric.c :+: :+: :+: */
/* +:+ +:+ +:+ */
/* By: gbaconni <marvin@42lausanne.ch> +#+ +:+ +#+ */
/* +#+#+#+#+#+ +#+ */
/* Created: 2021/08/10 10:14:17 by gbaconni #+# #+# */
/* Updated: 2021/08/10 10:15:38 by gbaconni ### ########.fr */
/* */
/* ************************************************************************** */
int ft_str_is_numeric(char *str)
{
int i;
int r;
int size;
size = 0;
while (str[size] != '\0')
{
size++;
}
r = 1;
i = 0;
while (i < size)
{
r &= (str[i] >= '0' && str[i] <= '9');
i++;
}
return (r);
}

View File

@@ -0,0 +1,32 @@
/* ************************************************************************** */
/* */
/* ::: :::::::: */
/* ft_str_is_lowercase.c :+: :+: :+: */
/* +:+ +:+ +:+ */
/* By: gbaconni <marvin@42lausanne.ch> +#+ +:+ +#+ */
/* +#+#+#+#+#+ +#+ */
/* Created: 2021/08/10 10:45:53 by gbaconni #+# #+# */
/* Updated: 2021/08/10 10:45:56 by gbaconni ### ########.fr */
/* */
/* ************************************************************************** */
int ft_str_is_lowercase(char *str)
{
int i;
int r;
int size;
size = 0;
while (str[size] != '\0')
{
size++;
}
r = 1;
i = 0;
while (i < size)
{
r &= (str[i] >= 'a' && str[i] <= 'z');
i++;
}
return (r);
}

View File

@@ -0,0 +1,32 @@
/* ************************************************************************** */
/* */
/* ::: :::::::: */
/* ft_str_is_uppercase.c :+: :+: :+: */
/* +:+ +:+ +:+ */
/* By: gbaconni <marvin@42lausanne.ch> +#+ +:+ +#+ */
/* +#+#+#+#+#+ +#+ */
/* Created: 2021/08/10 10:47:51 by gbaconni #+# #+# */
/* Updated: 2021/08/10 10:48:16 by gbaconni ### ########.fr */
/* */
/* ************************************************************************** */
int ft_str_is_uppercase(char *str)
{
int i;
int r;
int size;
size = 0;
while (str[size] != '\0')
{
size++;
}
r = 1;
i = 0;
while (i < size)
{
r &= (str[i] >= 'A' && str[i] <= 'Z');
i++;
}
return (r);
}

View File

@@ -0,0 +1,32 @@
/* ************************************************************************** */
/* */
/* ::: :::::::: */
/* ft_str_is_printable.c :+: :+: :+: */
/* +:+ +:+ +:+ */
/* By: gbaconni <marvin@42lausanne.ch> +#+ +:+ +#+ */
/* +#+#+#+#+#+ +#+ */
/* Created: 2021/08/10 11:05:18 by gbaconni #+# #+# */
/* Updated: 2021/08/10 11:10:03 by gbaconni ### ########.fr */
/* */
/* ************************************************************************** */
int ft_str_is_printable(char *str)
{
int i;
int r;
int size;
size = 0;
while (str[size] != '\0')
{
size++;
}
r = 1;
i = 0;
while (i < size)
{
r &= (str[i] >= ' ' && str[i] <= '~');
i++;
}
return (r);
}

View File

@@ -0,0 +1,29 @@
/* ************************************************************************** */
/* */
/* ::: :::::::: */
/* ft_strupcase.c :+: :+: :+: */
/* +:+ +:+ +:+ */
/* By: gbaconni <marvin@42lausanne.ch> +#+ +:+ +#+ */
/* +#+#+#+#+#+ +#+ */
/* Created: 2021/08/10 11:15:09 by gbaconni #+# #+# */
/* Updated: 2021/08/10 11:25:39 by gbaconni ### ########.fr */
/* */
/* ************************************************************************** */
char *ft_strupcase(char *str)
{
int i;
int size;
size = 0;
while (str[size++] != '\0')
continue ;
i = 0;
while (i < size)
{
if (str[i] >= 'a' && str[i] <= 'z')
str[i] = str[i] - 32;
i++;
}
return (str);
}

View File

@@ -0,0 +1,29 @@
/* ************************************************************************** */
/* */
/* ::: :::::::: */
/* ft_strlowcase.c :+: :+: :+: */
/* +:+ +:+ +:+ */
/* By: gbaconni <marvin@42lausanne.ch> +#+ +:+ +#+ */
/* +#+#+#+#+#+ +#+ */
/* Created: 2021/08/10 11:34:35 by gbaconni #+# #+# */
/* Updated: 2021/08/10 11:40:03 by gbaconni ### ########.fr */
/* */
/* ************************************************************************** */
char *ft_strlowcase(char *str)
{
int i;
int size;
size = 0;
while (str[size++] != '\0')
continue ;
i = 0;
while (i < size)
{
if (str[i] >= 'A' && str[i] <= 'Z')
str[i] += 32;
i++;
}
return (str);
}

View File

@@ -0,0 +1,37 @@
/* ************************************************************************** */
/* */
/* ::: :::::::: */
/* ft_strcapitalize.c :+: :+: :+: */
/* +:+ +:+ +:+ */
/* By: gbaconni <marvin@42lausanne.ch> +#+ +:+ +#+ */
/* +#+#+#+#+#+ +#+ */
/* Created: 2021/08/10 11:43:39 by gbaconni #+# #+# */
/* Updated: 2021/08/12 09:47:40 by gbaconni ### ########.fr */
/* */
/* ************************************************************************** */
char *ft_strcapitalize(char *str)
{
int i;
char prev_c;
prev_c = ' ';
i = 0;
while (str[i] != '\0')
{
if (\
(\
(prev_c >= ' ' && prev_c <= '/') || \
(prev_c >= ':' && prev_c <= '@') || \
(prev_c >= '[' && prev_c <= '`') || \
(prev_c >= '{' && prev_c <= '~') \
) && \
(str[i] >= 'a' && str[i] <= 'z') \
)
str[i] -= 32;
else if (str[i] >= 'A' && str[i] <= 'Z')
str[i] += 32;
prev_c = str[i++];
}
return (str);
}

View File

@@ -0,0 +1,29 @@
/* ************************************************************************** */
/* */
/* ::: :::::::: */
/* ft_strlcpy.c :+: :+: :+: */
/* +:+ +:+ +:+ */
/* By: gbaconni <marvin@42lausanne.ch> +#+ +:+ +#+ */
/* +#+#+#+#+#+ +#+ */
/* Created: 2021/08/11 10:20:13 by gbaconni #+# #+# */
/* Updated: 2021/08/12 10:40:17 by gbaconni ### ########.fr */
/* */
/* ************************************************************************** */
unsigned int ft_strlcpy(char *dest, char *src, unsigned int size)
{
char *p_dest;
char *p_src;
unsigned int n;
p_dest = dest;
p_src = src;
n = size;
while (n != 0 && --n != 0 && *p_src != '\0')
*p_dest++ = *p_src++;
if (size != 0)
*p_dest = '\0';
while (*p_src++)
continue ;
return (p_src - src - 1);
}

View File

@@ -0,0 +1,40 @@
/* ************************************************************************** */
/* */
/* ::: :::::::: */
/* ft_putstr_non_printable.c :+: :+: :+: */
/* +:+ +:+ +:+ */
/* By: gbaconni <marvin@42lausanne.ch> +#+ +:+ +#+ */
/* +#+#+#+#+#+ +#+ */
/* Created: 2021/08/11 11:29:09 by gbaconni #+# #+# */
/* Updated: 2021/08/12 11:40:23 by gbaconni ### ########.fr */
/* */
/* ************************************************************************** */
#include <unistd.h>
#include <stdio.h>
// for i in {0..127}; do printf "%02x" $i; done
void ft_putstr_non_printable(char *str)
{
const char *hex = "\
000102030405060708090a0b0c0d0e0f\
101112131415161718191a1b1c1d1e1f\
202122232425262728292a2b2c2d2e2f\
303132333435363738393a3b3c3d3e3f\
404142434445464748494a4b4c4d4e4f\
505152535455565758595a5b5c5d5e5f\
606162636465666768696a6b6c6d6e6f\
707172737475767778797a7b7c7d7e7f";
while (*str != '\0')
{
if (*str >= ' ' && *str != '~' + 1)
write(1, str, 1);
else
{
write(1, "\\", 1);
write(1, hex + *str * 2, 2);
}
str++;
}
}

21
C_02/playlist.html Normal file

File diff suppressed because one or more lines are too long

34
C_02/tests_C02/ex00.c Normal file
View File

@@ -0,0 +1,34 @@
/* ************************************************************************** */
/* */
/* ::: :::::::: */
/* ex00.c :+: :+: :+: */
/* +:+ +:+ +:+ */
/* By: tkondrac <tkondrac@student.42lausan> +#+ +:+ +#+ */
/* +#+#+#+#+#+ +#+ */
/* Created: 2021/08/08 15:02:50 by tkondrac #+# #+# */
/* Updated: 2021/08/08 17:02:48 by tkondrac ### ########.fr */
/* */
/* ************************************************************************** */
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include "../ex00/ft_strcpy.c"
int main(void)
{
char s[42];
char *d;
char *r;
d = (char*)malloc(43 * sizeof(char));
printf("Enter string (max 42 char): ");
scanf("%s", s);
r = ft_strcpy(d, s);
printf("destination : %s | return : %s\n", d, r);
free(d);
d = (char*)malloc(43 * sizeof(char));
printf("strcpy : %s\n", strcpy(d, s));
free(d);
return(0);
}

57
C_02/tests_C02/ex01.c Normal file
View File

@@ -0,0 +1,57 @@
/* ************************************************************************** */
/* */
/* ::: :::::::: */
/* ex01.c :+: :+: :+: */
/* +:+ +:+ +:+ */
/* By: tkondrac <tkondrac@student.42lausan> +#+ +:+ +#+ */
/* +#+#+#+#+#+ +#+ */
/* Created: 2021/08/08 15:03:03 by tkondrac #+# #+# */
/* Updated: 2021/08/08 16:59:55 by tkondrac ### ########.fr */
/* */
/* ************************************************************************** */
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include "../ex01/ft_strncpy.c"
#include "rand_string.c"
int ft_test(char *src, unsigned int l);
int main(void)
{
ft_test("0123456789", 15);
ft_test("test", 8);
ft_test("0123456789" , 3);
ft_test("un autre test" , 0);
return (0);
}
int ft_test(char *src, unsigned int l)
{
char *dest;
char *dest2;
int i;
i = 0;
dest = (char*)malloc(11 * sizeof(char));
while(i < 10)
{
*(dest + i) = '0';
i++;
}
*(dest + i) = '\0';
dest2 = ft_strncpy(dest, src, l);
printf("-------------\nTest\nsrc string : %s | copy lenght : %u\ndest string : %s | output string : %s\n", src, l, dest, dest2);
// Strncpy tests
while(i < 10)
{
*(dest + i) = '0';
i++;
}
*(dest + i) = '\0';
dest2 = strncpy(dest, src, l);
printf("TEST string : %s | output TEST : %s\n", dest, dest2);
free(dest);
return (0);
}

26
C_02/tests_C02/ex02.c Normal file
View File

@@ -0,0 +1,26 @@
/* ************************************************************************** */
/* */
/* ::: :::::::: */
/* ex02.c :+: :+: :+: */
/* +:+ +:+ +:+ */
/* By: tkondrac <tkondrac@student.42lausan> +#+ +:+ +#+ */
/* +#+#+#+#+#+ +#+ */
/* Created: 2021/08/08 15:03:45 by tkondrac #+# #+# */
/* Updated: 2021/08/08 15:03:53 by tkondrac ### ########.fr */
/* */
/* ************************************************************************** */
#include <stdio.h>
#include "../ex02/ft_str_is_alpha.c"
int main(void)
{
char c[42];
while(1)
{
scanf("%s", c);
printf("is alpha ? : %d\n", ft_str_is_alpha(c));
}
return (0);
}

26
C_02/tests_C02/ex03.c Normal file
View File

@@ -0,0 +1,26 @@
/* ************************************************************************** */
/* */
/* ::: :::::::: */
/* ex03.c :+: :+: :+: */
/* +:+ +:+ +:+ */
/* By: tkondrac <tkondrac@student.42lausan> +#+ +:+ +#+ */
/* +#+#+#+#+#+ +#+ */
/* Created: 2021/08/08 15:03:58 by tkondrac #+# #+# */
/* Updated: 2021/08/08 15:04:00 by tkondrac ### ########.fr */
/* */
/* ************************************************************************** */
#include <stdio.h>
#include "../ex03/ft_str_is_numeric.c"
int main(void)
{
char c[42];
while(1)
{
scanf("%s", c);
printf("is numeric ? : %d\n", ft_str_is_numeric(c));
}
return (0);
}

26
C_02/tests_C02/ex04.c Normal file
View File

@@ -0,0 +1,26 @@
/* ************************************************************************** */
/* */
/* ::: :::::::: */
/* ex04.c :+: :+: :+: */
/* +:+ +:+ +:+ */
/* By: tkondrac <tkondrac@student.42lausan> +#+ +:+ +#+ */
/* +#+#+#+#+#+ +#+ */
/* Created: 2021/08/08 15:07:35 by tkondrac #+# #+# */
/* Updated: 2021/08/08 15:11:12 by tkondrac ### ########.fr */
/* */
/* ************************************************************************** */
#include <stdio.h>
#include "../ex04/ft_str_is_lowercase.c"
int main(void)
{
char c[42];
while(1)
{
scanf("%s", c);
printf("is lowercase ? : %d\n", ft_str_is_lowercase(c));
}
return (0);
}

26
C_02/tests_C02/ex05.c Normal file
View File

@@ -0,0 +1,26 @@
/* ************************************************************************** */
/* */
/* ::: :::::::: */
/* ex05.c :+: :+: :+: */
/* +:+ +:+ +:+ */
/* By: tkondrac <tkondrac@student.42lausan> +#+ +:+ +#+ */
/* +#+#+#+#+#+ +#+ */
/* Created: 2021/08/08 15:13:08 by tkondrac #+# #+# */
/* Updated: 2021/08/08 15:13:13 by tkondrac ### ########.fr */
/* */
/* ************************************************************************** */
#include <stdio.h>
#include "../ex05/ft_str_is_uppercase.c"
int main(void)
{
char c[42];
while(1)
{
scanf("%s", c);
printf("is uppercase ? : %d\n", ft_str_is_uppercase(c));
}
return (0);
}

26
C_02/tests_C02/ex06.c Normal file
View File

@@ -0,0 +1,26 @@
/* ************************************************************************** */
/* */
/* ::: :::::::: */
/* ex06.c :+: :+: :+: */
/* +:+ +:+ +:+ */
/* By: tkondrac <tkondrac@student.42lausan> +#+ +:+ +#+ */
/* +#+#+#+#+#+ +#+ */
/* Created: 2021/08/08 15:13:19 by tkondrac #+# #+# */
/* Updated: 2021/08/08 15:13:37 by tkondrac ### ########.fr */
/* */
/* ************************************************************************** */
#include <stdio.h>
#include "../ex06/ft_str_is_printable.c"
int main(void)
{
char c[42];
while(1)
{
scanf("%s", c);
printf("is printable ? : %d\n", ft_str_is_printable(c));
}
return (0);
}

26
C_02/tests_C02/ex07.c Normal file
View File

@@ -0,0 +1,26 @@
/* ************************************************************************** */
/* */
/* ::: :::::::: */
/* ex07.c :+: :+: :+: */
/* +:+ +:+ +:+ */
/* By: tkondrac <tkondrac@student.42lausan> +#+ +:+ +#+ */
/* +#+#+#+#+#+ +#+ */
/* Created: 2021/08/08 15:13:42 by tkondrac #+# #+# */
/* Updated: 2021/08/08 15:13:47 by tkondrac ### ########.fr */
/* */
/* ************************************************************************** */
#include <stdio.h>
#include "../ex07/ft_strupcase.c"
int main(void)
{
char c[42];
while(1)
{
scanf("%s", c);
printf("upcased : %s\n", ft_strupcase(c));
}
return (0);
}

26
C_02/tests_C02/ex08.c Normal file
View File

@@ -0,0 +1,26 @@
/* ************************************************************************** */
/* */
/* ::: :::::::: */
/* ex08.c :+: :+: :+: */
/* +:+ +:+ +:+ */
/* By: tkondrac <tkondrac@student.42lausan> +#+ +:+ +#+ */
/* +#+#+#+#+#+ +#+ */
/* Created: 2021/08/08 15:13:52 by tkondrac #+# #+# */
/* Updated: 2021/08/08 15:13:55 by tkondrac ### ########.fr */
/* */
/* ************************************************************************** */
#include <stdio.h>
#include "../ex08/ft_strlowcase.c"
int main(void)
{
char c[42];
while(1)
{
scanf("%s", c);
printf("lowcased : %s\n", ft_strlowcase(c));
}
return (0);
}

23
C_02/tests_C02/ex09.c Normal file
View File

@@ -0,0 +1,23 @@
/* ************************************************************************** */
/* */
/* ::: :::::::: */
/* ex09.c :+: :+: :+: */
/* +:+ +:+ +:+ */
/* By: tkondrac <tkondrac@student.42lausan> +#+ +:+ +#+ */
/* +#+#+#+#+#+ +#+ */
/* Created: 2021/08/08 15:14:28 by tkondrac #+# #+# */
/* Updated: 2021/08/08 15:14:31 by tkondrac ### ########.fr */
/* */
/* ************************************************************************** */
#include <stdio.h>
#include "../ex09/ft_strcapitalize.c"
int main(void)
{
char c[] = "salut, comment tu vas ? 42mots quarante-deux; cinquante+et+un";
printf("original :%s\n", c);
printf("capitalized :%s\n", ft_strcapitalize(c));
return (0);
}

47
C_02/tests_C02/ex10.c Normal file
View File

@@ -0,0 +1,47 @@
/* ************************************************************************** */
/* */
/* ::: :::::::: */
/* ex10.c :+: :+: :+: */
/* +:+ +:+ +:+ */
/* By: tkondrac <tkondrac@student.42lausan> +#+ +:+ +#+ */
/* +#+#+#+#+#+ +#+ */
/* Created: 2021/08/08 15:16:23 by tkondrac #+# #+# */
/* Updated: 2021/08/11 15:01:07 by gbaconni ### ########.fr */
/* */
/* ************************************************************************** */
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include "../ex10/ft_strlcpy.c"
#include "rand_string.c"
int ft_test(unsigned int s, unsigned int d);
int main(void)
{
ft_test(15 , 8);
ft_test(8 , 15);
ft_test(10 , 2);
ft_test(5 , 0);
return (0);
}
int ft_test(unsigned int s, unsigned int d)
{
char *dest;
char *src;
unsigned int n;
size_t t;
dest = (char*)malloc(d * sizeof(char));
src = rand_string(s);
n = ft_strlcpy(dest, src, d);
printf("-------------\nTest\nsrc string : %s | dest size : %u\ndest string : %s | output size : %d\n", src, d, dest, n);
free(dest);
dest = (char*)malloc(d * sizeof(char));
t = strlcpy(dest, src, d);
printf("TEST string : %s | output TEST : %d\n", dest, n);
free(dest);
free(src);
return (0);
}

26
C_02/tests_C02/ex11.c Normal file
View File

@@ -0,0 +1,26 @@
/* ************************************************************************** */
/* */
/* ::: :::::::: */
/* ex11.c :+: :+: :+: */
/* +:+ +:+ +:+ */
/* By: tkondrac <tkondrac@student.42lausan> +#+ +:+ +#+ */
/* +#+#+#+#+#+ +#+ */
/* Created: 2021/08/08 15:48:26 by tkondrac #+# #+# */
/* Updated: 2021/08/11 16:50:37 by gbaconni ### ########.fr */
/* */
/* ************************************************************************** */
#include <stdio.h>
#include "../ex11/ft_putstr_non_printable.c"
int main(void)
{
char c[] = "special : | speciaux : ";
c[10] = '\n';
c[25] = 14;
c[26] = 127;
printf("%s\n ------ \n", c);
ft_putstr_non_printable(c);
return (0);
}

8
C_02/tests_C02/main.sh Executable file
View File

@@ -0,0 +1,8 @@
#!/bin/sh
test=$1
set -e
norminette -R CheckForbiddenSourceHeader ../$test/ft_*.c
gcc -Wall -Wextra -Werror -o a.out $test.c
#gcc -o a.out $test.c
./a.out
rm -f a.out

View File

@@ -0,0 +1,31 @@
/* ************************************************************************** */
/* */
/* ::: :::::::: */
/* rand_string.c :+: :+: :+: */
/* +:+ +:+ +:+ */
/* By: tkondrac <marvin@42lausanne.ch> +#+ +:+ +#+ */
/* +#+#+#+#+#+ +#+ */
/* Created: 2021/08/08 12:07:16 by tkondrac #+# #+# */
/* Updated: 2021/08/08 13:04:23 by tkondrac ### ########.fr */
/* */
/* ************************************************************************** */
#include <stdlib.h>
#include <stdio.h>
#include <time.h>
char *rand_string(unsigned int size)
{
char *c;
unsigned int i;
c = (char*)malloc(size * sizeof(char));
i = 0;
srand(time(0));
while(i < size - 1)
{
*(c + i) = (rand() % 94) + 32;
i++;
}
*(c + i) = '\0';
return (c);
}

1
C_02/tmp Submodule

Submodule C_02/tmp added at 75cf975de3