Handle null string and null pointer

This commit is contained in:
gbaconni
2022-04-25 07:14:14 +02:00
parent 7cd65fdc9e
commit be4099ab31
3 changed files with 13 additions and 4 deletions

View File

@@ -6,7 +6,7 @@
# By: gbaconni@student.42lausanne.ch +#+ +:+ +#+ #
# +#+#+#+#+#+ +#+ #
# Created: 2022/01/18 15:11:16 by gbaconni #+# #+# #
# Updated: 2022/04/24 11:41:45 by gbaconni ### lausanne.ch #
# Updated: 2022/04/25 07:11:15 by gbaconni ### lausanne.ch #
# #
# **************************************************************************** #
#
@@ -89,6 +89,7 @@ fast:
test: clean $(NAME)
@$(PREFIX) ./$(NAME) "%c" C
@$(PREFIX) ./$(NAME) "%s" "42 Lausanne"
@$(PREFIX) ./$(NAME) "%s" ""
@$(PREFIX) ./$(NAME) "%d" 42
@$(PREFIX) ./$(NAME) "%i" 2147483647
@$(PREFIX) ./$(NAME) "%i" -2147483646

View File

@@ -6,7 +6,7 @@
/* By: gbaconni@student.42lausanne.ch +#+ +:+ +#+ */
/* +#+#+#+#+#+ +#+ */
/* Created: 2022/01/20 11:56:37 by gbaconni #+# #+# */
/* Updated: 2022/04/24 00:59:10 by gbaconni ### lausanne.ch */
/* Updated: 2022/04/25 07:12:44 by gbaconni ### lausanne.ch */
/* */
/* ************************************************************************** */
@@ -18,7 +18,13 @@ int ft_vprintf_string(const char *format, va_list ap)
char *s;
(void) format;
ret = 0;
s = va_arg(ap, char *);
if (s == NULL)
{
ret = ft_puts("(null)");
return (ret);
}
ret = ft_puts(s);
return (ret);
}

6
main.c
View File

@@ -6,7 +6,7 @@
/* By: gbaconni@student.42lausanne.ch +#+ +:+ +#+ */
/* +#+#+#+#+#+ +#+ */
/* Created: 2022/04/13 06:58:46 by gbaconni #+# #+# */
/* Updated: 2022/04/24 11:14:40 by gbaconni ### lausanne.ch */
/* Updated: 2022/04/25 07:08:49 by gbaconni ### lausanne.ch */
/* */
/* ************************************************************************** */
@@ -59,7 +59,7 @@ int _printf(int (*f)(const char *restrict, ...), \
else if (c == 's')
ret = (*f)(format, arg);
else if (c == 'p')
ret = (*f)(format, &arg);
ret = (*f)(format, (arg)? &arg: NULL);
else if (c == 'x' || c == 'X')
ret = (*f)(format, atol(arg));
else if (c == 'd' || c == 'i' || c == 'u')
@@ -99,6 +99,8 @@ int assert_printf(char *format, char *arg)
char out[256];
char ft_out[256];
if (arg == NULL || strcmp(arg, "") == 0)
arg = NULL;
ret = _sprintf(printf, out, format, arg);
printf("%d = printf(\"%s\", '%s')\n%s\n", ret, format, arg, out);
ft_ret = _sprintf(ft_printf, ft_out, format, arg);