From 960ef386ee76111dc4cdd9d726093cb99a3474bb Mon Sep 17 00:00:00 2001 From: Supermjork Date: Mon, 21 Aug 2023 12:19:24 +0300 Subject: [PATCH] betty passes, write + 1, NO RETURN _PRTINF PLS --- printf.c | 18 ++++++------------ strcpy.c | 3 --- tests/str_print.c | 5 +++-- 3 files changed, 9 insertions(+), 17 deletions(-) diff --git a/printf.c b/printf.c index fc86c4b..c96a1e9 100644 --- a/printf.c +++ b/printf.c @@ -2,7 +2,6 @@ #include #include #include - /** * _printf - printf but worse * @format: format string @@ -11,24 +10,21 @@ **/ int _printf(const char *format, ...) { - int buff_idx, fmt_idx; - unsigned int identifiers, BUFF_SIZE; + int buff_idx = 0; + int fmt_idx = 0; + unsigned int identifiers = _contains(format, '%'); + unsigned int BUFF_SIZE = _strlen(format) - (identifiers * 2); char *buffer, *next; va_list args; - va_start(args, format); - identifiers = _contains(format, '%'); - BUFF_SIZE = _strlen(format) - (identifiers * 2); buffer = malloc(BUFF_SIZE); if (!format) /* No string. No laundry */ return (0); - buff_idx = 0; - fmt_idx = 0; while (*(format + fmt_idx)) { - if ((*format == '%') && (*(format + 1))) /*hello %s*/ + if ((*(format + fmt_idx) == '%') && (*(format + fmt_idx + 1))) { switch (*(format + 1)) /*this needs to shrink*/ { @@ -38,7 +34,6 @@ int _printf(const char *format, ...) BUFF_SIZE = _strlen(buffer); buff_idx += _strlen(next); fmt_idx += 2; - break; case 'c': /* add 1 byte and i++ */ break; @@ -53,7 +48,6 @@ int _printf(const char *format, ...) fmt_idx++; } } - - write(1, buffer, BUFF_SIZE); + write(1, buffer, BUFF_SIZE + 1); return (_strlen(buffer)); } diff --git a/strcpy.c b/strcpy.c index ed0fd48..c37a3ca 100644 --- a/strcpy.c +++ b/strcpy.c @@ -23,8 +23,5 @@ char *_strcpy(char *dest, char *src) *(new_me + s_idx++) = *(src + i); *(new_me + _strlen(new_me)) = '\0'; - free(dest); - - return (new_me); } diff --git a/tests/str_print.c b/tests/str_print.c index 4f865ee..d27eb2b 100644 --- a/tests/str_print.c +++ b/tests/str_print.c @@ -10,10 +10,11 @@ int main(void) { char *test_0 = "Hej"; + char *test_1 = "pls"; /* * Brain ded to think bout test cond */ - _printf("%s \n", test_0); - return (_printf("hey, %s", test_0)); + _printf("%s\n%s\n", test_0, test_1); + return (0); }