From 5aa3e848e9d7d2ff54171a2304cd3f72336e98eb Mon Sep 17 00:00:00 2001 From: gbaconni Date: Sat, 16 Apr 2022 00:53:16 +0200 Subject: [PATCH] Remplace all write with ft_putchar and ft_puts --- libftprintf/Makefile | 5 ++++- libftprintf/ft_ltoa_base.c | 23 +------------------ libftprintf/ft_putchar.c | 22 +++++++++++++++++++ libftprintf/ft_puts.c | 23 +++++++++++++++++++ libftprintf/ft_strrev.c | 33 ++++++++++++++++++++++++++++ libftprintf/ft_vprintf.c | 4 ++-- libftprintf/ft_vprintf_char.c | 6 ++--- libftprintf/ft_vprintf_decimal.c | 9 ++------ libftprintf/ft_vprintf_hexadecimal.c | 11 +++------- libftprintf/ft_vprintf_other.c | 6 ++--- libftprintf/ft_vprintf_percent.c | 6 ++--- libftprintf/ft_vprintf_pointer.c | 15 +++++-------- libftprintf/ft_vprintf_string.c | 9 ++------ libftprintf/libftprintf.h | 5 ++++- 14 files changed, 107 insertions(+), 70 deletions(-) create mode 100644 libftprintf/ft_putchar.c create mode 100644 libftprintf/ft_puts.c create mode 100644 libftprintf/ft_strrev.c diff --git a/libftprintf/Makefile b/libftprintf/Makefile index 787f442..8919658 100644 --- a/libftprintf/Makefile +++ b/libftprintf/Makefile @@ -6,7 +6,7 @@ # By: gbaconni@student.42lausanne.ch +#+ +:+ +#+ # # +#+#+#+#+#+ +#+ # # Created: 2022/01/18 15:11:16 by gbaconni #+# #+# # -# Updated: 2022/04/15 20:19:14 by gbaconni ### lausanne.ch # +# Updated: 2022/04/16 00:45:55 by gbaconni ### lausanne.ch # # # # **************************************************************************** # # @@ -30,7 +30,10 @@ SRC = \ $(LIBFT)/ft_calloc.c \ $(LIBFT)/ft_strlen.c \ $(LIBFT)/ft_itoa.c \ + ft_strrev.c \ ft_ltoa_base.c \ + ft_putchar.c \ + ft_puts.c \ ft_vprintf_char.c \ ft_vprintf_string.c \ ft_vprintf_pointer.c \ diff --git a/libftprintf/ft_ltoa_base.c b/libftprintf/ft_ltoa_base.c index d7ff41d..f560d81 100644 --- a/libftprintf/ft_ltoa_base.c +++ b/libftprintf/ft_ltoa_base.c @@ -6,14 +6,13 @@ /* By: gbaconni +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2021/08/16 13:51:16 by gbaconni #+# #+# */ -/* Updated: 2022/04/15 20:20:23 by gbaconni ### lausanne.ch */ +/* Updated: 2022/04/16 00:46:32 by gbaconni ### lausanne.ch */ /* */ /* ************************************************************************** */ #include "libftprintf.h" static long ft_longlen_base(long n, long nbase); -static char *ft_strrev(char *s); char *ft_ltoa_base(long n, char *base) { @@ -57,23 +56,3 @@ static long ft_longlen_base(long n, long nbase) } return (len); } - -static char *ft_strrev(char *s) -{ - int len; - int i; - int j; - char c; - - len = ft_strlen(s); - i = 0; - while (i < (len / 2)) - { - j = len - 1 - i; - c = s[i]; - s[i] = s[j]; - s[j] = c; - i++; - } - return (s); -} diff --git a/libftprintf/ft_putchar.c b/libftprintf/ft_putchar.c new file mode 100644 index 0000000..beedaf3 --- /dev/null +++ b/libftprintf/ft_putchar.c @@ -0,0 +1,22 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* ft_putchar.c :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: gbaconni@student.42lausanne.ch +#+ +:+ +#+ */ +/* +#+#+#+#+#+ +#+ */ +/* Created: 2022/04/16 00:05:56 by gbaconni #+# #+# */ +/* Updated: 2022/04/16 00:27:53 by gbaconni ### lausanne.ch */ +/* */ +/* ************************************************************************** */ + +#include "libftprintf.h" + +int ft_putchar(int c) +{ + int ret; + + ret = 0; + ret = write(1, &c, 1); + return (ret); +} diff --git a/libftprintf/ft_puts.c b/libftprintf/ft_puts.c new file mode 100644 index 0000000..7958936 --- /dev/null +++ b/libftprintf/ft_puts.c @@ -0,0 +1,23 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* ft_puts.c :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: gbaconni@student.42lausanne.ch +#+ +:+ +#+ */ +/* +#+#+#+#+#+ +#+ */ +/* Created: 2022/04/16 00:07:17 by gbaconni #+# #+# */ +/* Updated: 2022/04/16 00:35:49 by gbaconni ### lausanne.ch */ +/* */ +/* ************************************************************************** */ + +#include "libftprintf.h" + +int ft_puts(const char *s) +{ + int ret; + + ret = 0; + while (*s != '\0') + ret += ft_putchar(*s++); + return (ret); +} diff --git a/libftprintf/ft_strrev.c b/libftprintf/ft_strrev.c new file mode 100644 index 0000000..359e66b --- /dev/null +++ b/libftprintf/ft_strrev.c @@ -0,0 +1,33 @@ +/* ************************************************************************** */ +/* */ +/* ::: :::::::: */ +/* ft_strrev.c :+: :+: :+: */ +/* +:+ +:+ +:+ */ +/* By: gbaconni@student.42lausanne.ch +#+ +:+ +#+ */ +/* +#+#+#+#+#+ +#+ */ +/* Created: 2022/04/16 00:44:41 by gbaconni #+# #+# */ +/* Updated: 2022/04/16 00:45:08 by gbaconni ### lausanne.ch */ +/* */ +/* ************************************************************************** */ + +#include "libftprintf.h" + +char *ft_strrev(char *s) +{ + int len; + int i; + int j; + char c; + + len = ft_strlen(s); + i = 0; + while (i < (len / 2)) + { + j = len - 1 - i; + c = s[i]; + s[i] = s[j]; + s[j] = c; + i++; + } + return (s); +} diff --git a/libftprintf/ft_vprintf.c b/libftprintf/ft_vprintf.c index 61bb1e2..b48af54 100644 --- a/libftprintf/ft_vprintf.c +++ b/libftprintf/ft_vprintf.c @@ -6,7 +6,7 @@ /* By: gbaconni@student.42lausanne.ch +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2022/01/20 11:43:52 by gbaconni #+# #+# */ -/* Updated: 2022/04/15 20:44:24 by gbaconni ### lausanne.ch */ +/* Updated: 2022/04/15 22:15:16 by gbaconni ### lausanne.ch */ /* */ /* ************************************************************************** */ @@ -17,7 +17,7 @@ int ft_vprintf(char const *format, va_list ap) int ret; ret = 0; - while (*format) + while (*format != 0) { if (*format == '%') { diff --git a/libftprintf/ft_vprintf_char.c b/libftprintf/ft_vprintf_char.c index 1f550dd..84e74fc 100644 --- a/libftprintf/ft_vprintf_char.c +++ b/libftprintf/ft_vprintf_char.c @@ -6,7 +6,7 @@ /* By: gbaconni@student.42lausanne.ch +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2022/01/20 11:54:48 by gbaconni #+# #+# */ -/* Updated: 2022/04/12 08:20:53 by gbaconni ### lausanne.ch */ +/* Updated: 2022/04/16 00:24:01 by gbaconni ### lausanne.ch */ /* */ /* ************************************************************************** */ @@ -18,9 +18,7 @@ int ft_vprintf_char(const char *format, va_list ap) int ret; (void) format; - ret = 0; c = (char) va_arg(ap, int); - write(1, &c, 1); - ret++; + ret = ft_putchar(c); return (ret); } diff --git a/libftprintf/ft_vprintf_decimal.c b/libftprintf/ft_vprintf_decimal.c index b3b2f22..d3a9bb4 100644 --- a/libftprintf/ft_vprintf_decimal.c +++ b/libftprintf/ft_vprintf_decimal.c @@ -6,7 +6,7 @@ /* By: gbaconni@student.42lausanne.ch +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2022/01/20 11:55:02 by gbaconni #+# #+# */ -/* Updated: 2022/04/14 21:49:13 by gbaconni ### lausanne.ch */ +/* Updated: 2022/04/16 00:29:49 by gbaconni ### lausanne.ch */ /* */ /* ************************************************************************** */ @@ -15,18 +15,13 @@ int ft_vprintf_decimal(const char *format, va_list ap) { int ret; - int len; int d; char *s; (void) format; - ret = 0; - len = 0; d = va_arg(ap, int); s = ft_itoa(d); - len = ft_strlen(s); - write(1, s, len); - ret += len; + ret = ft_puts(s); free(s); return (ret); } diff --git a/libftprintf/ft_vprintf_hexadecimal.c b/libftprintf/ft_vprintf_hexadecimal.c index 8e2497f..c6f05d1 100644 --- a/libftprintf/ft_vprintf_hexadecimal.c +++ b/libftprintf/ft_vprintf_hexadecimal.c @@ -6,7 +6,7 @@ /* By: gbaconni@student.42lausanne.ch +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2022/01/20 11:55:33 by gbaconni #+# #+# */ -/* Updated: 2022/04/15 20:22:19 by gbaconni ### lausanne.ch */ +/* Updated: 2022/04/16 00:30:39 by gbaconni ### lausanne.ch */ /* */ /* ************************************************************************** */ @@ -15,21 +15,16 @@ int ft_vprintf_hexadecimal(const char *format, va_list ap) { int ret; - int len; long l; char *s; (void) format; - ret = 0; - len = 0; l = va_arg(ap, long); - if (format[0] == 'x') + if (*format == 'x') s = ft_ltoa_base(l, "0123456789abcdef"); else s = ft_ltoa_base(l, "0123456789ABCDEF"); - len = ft_strlen(s); - write(1, s, len); - ret += len; + ret = ft_puts(s); free(s); return (ret); } diff --git a/libftprintf/ft_vprintf_other.c b/libftprintf/ft_vprintf_other.c index 20b12e2..65f36ca 100644 --- a/libftprintf/ft_vprintf_other.c +++ b/libftprintf/ft_vprintf_other.c @@ -6,7 +6,7 @@ /* By: gbaconni@student.42lausanne.ch +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2022/01/20 12:58:03 by gbaconni #+# #+# */ -/* Updated: 2022/04/15 00:23:22 by gbaconni ### lausanne.ch */ +/* Updated: 2022/04/16 00:36:48 by gbaconni ### lausanne.ch */ /* */ /* ************************************************************************** */ @@ -17,8 +17,6 @@ int ft_vprintf_other(const char *format, va_list ap) int ret; (void) ap; - ret = 0; - write(1, format, 1); - ret++; + ret = ft_putchar(*format); return (ret); } diff --git a/libftprintf/ft_vprintf_percent.c b/libftprintf/ft_vprintf_percent.c index 08a45bb..5e9ea50 100644 --- a/libftprintf/ft_vprintf_percent.c +++ b/libftprintf/ft_vprintf_percent.c @@ -6,7 +6,7 @@ /* By: gbaconni@student.42lausanne.ch +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2022/01/20 11:55:58 by gbaconni #+# #+# */ -/* Updated: 2022/04/13 00:01:47 by gbaconni ### lausanne.ch */ +/* Updated: 2022/04/16 00:32:06 by gbaconni ### lausanne.ch */ /* */ /* ************************************************************************** */ @@ -18,8 +18,6 @@ int ft_vprintf_percent(const char *format, va_list ap) (void) format; (void) ap; - ret = 0; - write(1, "%", 1); - ret++; + ret = ft_putchar('%'); return (ret); } diff --git a/libftprintf/ft_vprintf_pointer.c b/libftprintf/ft_vprintf_pointer.c index e4debe6..3515f93 100644 --- a/libftprintf/ft_vprintf_pointer.c +++ b/libftprintf/ft_vprintf_pointer.c @@ -6,7 +6,7 @@ /* By: gbaconni@student.42lausanne.ch +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2022/01/20 11:56:16 by gbaconni #+# #+# */ -/* Updated: 2022/04/15 20:54:31 by gbaconni ### lausanne.ch */ +/* Updated: 2022/04/16 00:34:18 by gbaconni ### lausanne.ch */ /* */ /* ************************************************************************** */ @@ -15,25 +15,20 @@ int ft_vprintf_pointer(const char *format, va_list ap) { int ret; - int len; void *p; char *s; (void) format; ret = 0; - len = 0; p = va_arg(ap, void *); if (p == NULL) { - len = ft_strlen(NIL); - write(1, NIL, len); - return (len); + ret = ft_puts(NIL); + return (ret); } s = ft_ltoa_base((long) p, "0123456789abcdef"); - len = ft_strlen(s); - write(1, "0x", 2); - write(1, s, len); - ret += len + 2; + ret += ft_puts("0x"); + ret += ft_puts(s); free(s); return (ret); } diff --git a/libftprintf/ft_vprintf_string.c b/libftprintf/ft_vprintf_string.c index c0703f0..24cd27d 100644 --- a/libftprintf/ft_vprintf_string.c +++ b/libftprintf/ft_vprintf_string.c @@ -6,7 +6,7 @@ /* By: gbaconni@student.42lausanne.ch +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2022/01/20 11:56:37 by gbaconni #+# #+# */ -/* Updated: 2022/04/12 23:50:02 by gbaconni ### lausanne.ch */ +/* Updated: 2022/04/16 00:35:13 by gbaconni ### lausanne.ch */ /* */ /* ************************************************************************** */ @@ -15,15 +15,10 @@ int ft_vprintf_string(const char *format, va_list ap) { int ret; - int len; char *s; (void) format; - ret = 0; - len = 0; s = va_arg(ap, char *); - len = ft_strlen(s); - write(1, s, len); - ret += len; + ret = ft_puts(s); return (ret); } diff --git a/libftprintf/libftprintf.h b/libftprintf/libftprintf.h index 55fe6cc..1c463e4 100644 --- a/libftprintf/libftprintf.h +++ b/libftprintf/libftprintf.h @@ -6,7 +6,7 @@ /* By: gbaconni@student.42lausanne.ch +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2022/01/18 15:26:06 by gbaconni #+# #+# */ -/* Updated: 2022/04/15 20:20:35 by gbaconni ### lausanne.ch */ +/* Updated: 2022/04/16 00:45:36 by gbaconni ### lausanne.ch */ /* */ /* ************************************************************************** */ @@ -25,7 +25,10 @@ /* Helper */ +char *ft_strrev(char *s); char *ft_ltoa_base(long n, char *base); +int ft_putchar(int c); +int ft_puts(const char *s); /* Mandatory */