push
This commit is contained in:
commit
7723c2b0c3
|
|
@ -0,0 +1,61 @@
|
||||||
|
# **************************************************************************** #
|
||||||
|
# #
|
||||||
|
# ::: :::::::: #
|
||||||
|
# Makefile :+: :+: :+: #
|
||||||
|
# +:+ +:+ +:+ #
|
||||||
|
# By: lfirmin lfirmim@student.42.fr> +#+ +:+ +#+ #
|
||||||
|
# +#+#+#+#+#+ +#+ #
|
||||||
|
# Created: 2024/08/12 07:07:31 by lfirmin #+# #+# #
|
||||||
|
# Updated: 2024/08/12 09:15:05 by lfirmin ### ########.fr #
|
||||||
|
# #
|
||||||
|
# **************************************************************************** #
|
||||||
|
|
||||||
|
NAME = libftprintf.a
|
||||||
|
HEADER = ./
|
||||||
|
SRC = ft_putchar.c ft_put_ptr.c ft_conv_ith.c ft_hex_len.c \
|
||||||
|
ft_sorting.c ft_printf.c ft_print_ith.c ft_printchar.c \
|
||||||
|
ft_printstr.c ft_printpercent.c ft_print_unsigned.c \
|
||||||
|
ft_print_nbr.c ft_print_ptr.c ft_adrr_len.c ft_print_null.c \
|
||||||
|
ft_itoa.c ft_unsigned_itoa.c ft_count.c
|
||||||
|
|
||||||
|
CC = cc
|
||||||
|
CFLAGS = -Wall -Wextra -Werror
|
||||||
|
INCLUDE = -I $(HEADER)
|
||||||
|
OBJ_DIR = obj/
|
||||||
|
OBJ = $(addprefix $(OBJ_DIR), $(SRC:.c=.o))
|
||||||
|
|
||||||
|
|
||||||
|
GREEN = \033[0;32m
|
||||||
|
YELLOW = \033[0;33m
|
||||||
|
RESET = \033[0m
|
||||||
|
WHITE = \033[0;97m
|
||||||
|
|
||||||
|
LOADING_CHARS = ⠋ ⠙ ⠹ ⠸ ⠼ ⠴ ⠦ ⠧ ⠇ ⠏
|
||||||
|
|
||||||
|
all: $(NAME)
|
||||||
|
|
||||||
|
$(NAME): $(OBJ)
|
||||||
|
@printf "$(YELLOW)Compiling ft_printf, Please wait...$(RESET)"
|
||||||
|
@for char in $(LOADING_CHARS); do \
|
||||||
|
printf "\r$(YELLOW)Compiling ft_print, Please wait... $$char$(RESET)"; \
|
||||||
|
sleep 0.1; \
|
||||||
|
done
|
||||||
|
@ar rc $(NAME) $(OBJ)``
|
||||||
|
@ranlib $(NAME)
|
||||||
|
@printf "\r$(GREEN)Great news ! $(WHITE)ft_printf compiled successfully ! $(RESET)\n"
|
||||||
|
|
||||||
|
$(OBJ_DIR)%.o: %.c
|
||||||
|
@mkdir -p $(OBJ_DIR)
|
||||||
|
@$(CC) $(CFLAGS) $(INCLUDE) -c $< -o $@
|
||||||
|
|
||||||
|
clean:
|
||||||
|
@rm -rf $(OBJ_DIR)
|
||||||
|
@printf "$(WHITE)Clean process completed for $(GREEN)Ft_printf.$(RESET)\n"
|
||||||
|
|
||||||
|
fclean: clean
|
||||||
|
@rm -f $(NAME)
|
||||||
|
@printf "$(WHITE)Full clean process completed for $(GREEN)Ft_printf.$(RESET)\n"
|
||||||
|
|
||||||
|
re: fclean all
|
||||||
|
|
||||||
|
.PHONY: all clean fclean re
|
||||||
|
|
@ -0,0 +1,27 @@
|
||||||
|
/* ************************************************************************** */
|
||||||
|
/* */
|
||||||
|
/* ::: :::::::: */
|
||||||
|
/* ft_adrr_len.c :+: :+: :+: */
|
||||||
|
/* +:+ +:+ +:+ */
|
||||||
|
/* By: lfirmin <lfirmin@student.42.fr> +#+ +:+ +#+ */
|
||||||
|
/* +#+#+#+#+#+ +#+ */
|
||||||
|
/* Created: 2024/06/19 05:16:57 by lfirmin #+# #+# */
|
||||||
|
/* Updated: 2024/06/19 07:50:34 by lfirmin ### ########.fr */
|
||||||
|
/* */
|
||||||
|
/* ************************************************************************** */
|
||||||
|
#include "ftprintf.h"
|
||||||
|
|
||||||
|
int ft_adrr_len(unsigned long long nbr)
|
||||||
|
{
|
||||||
|
int i;
|
||||||
|
|
||||||
|
if (nbr == 0)
|
||||||
|
return (1);
|
||||||
|
i = 0;
|
||||||
|
while (nbr != 0)
|
||||||
|
{
|
||||||
|
i++;
|
||||||
|
nbr = nbr / 16;
|
||||||
|
}
|
||||||
|
return (i);
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,30 @@
|
||||||
|
/* ************************************************************************** */
|
||||||
|
/* */
|
||||||
|
/* ::: :::::::: */
|
||||||
|
/* ft_conv_ith.c :+: :+: :+: */
|
||||||
|
/* +:+ +:+ +:+ */
|
||||||
|
/* By: lfirmin <lfirmin@student.42.fr> +#+ +:+ +#+ */
|
||||||
|
/* +#+#+#+#+#+ +#+ */
|
||||||
|
/* Created: 2024/06/19 04:46:47 by lfirmin #+# #+# */
|
||||||
|
/* Updated: 2024/06/19 07:46:23 by lfirmin ### ########.fr */
|
||||||
|
/* */
|
||||||
|
/* ************************************************************************** */
|
||||||
|
#include "ftprintf.h"
|
||||||
|
|
||||||
|
void ft_conv_ith(int fd, unsigned int nbr, const char str)
|
||||||
|
{
|
||||||
|
if (nbr >= 16)
|
||||||
|
{
|
||||||
|
ft_conv_ith(fd, (nbr / 16), str);
|
||||||
|
nbr = nbr % 16;
|
||||||
|
}
|
||||||
|
if (nbr <= 9)
|
||||||
|
ft_putchar(fd, nbr + '0');
|
||||||
|
else
|
||||||
|
{
|
||||||
|
if (str == 'x')
|
||||||
|
ft_putchar(fd, nbr - 10 + 'a');
|
||||||
|
else if (str == 'X')
|
||||||
|
ft_putchar(fd, nbr - 10 + 'A');
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,27 @@
|
||||||
|
/* ************************************************************************** */
|
||||||
|
/* */
|
||||||
|
/* ::: :::::::: */
|
||||||
|
/* ft_count.c :+: :+: :+: */
|
||||||
|
/* +:+ +:+ +:+ */
|
||||||
|
/* By: lfirmin <lfirmin@student.42.fr> +#+ +:+ +#+ */
|
||||||
|
/* +#+#+#+#+#+ +#+ */
|
||||||
|
/* Created: 2024/06/19 04:52:36 by lfirmin #+# #+# */
|
||||||
|
/* Updated: 2024/06/19 07:47:07 by lfirmin ### ########.fr */
|
||||||
|
/* */
|
||||||
|
/* ************************************************************************** */
|
||||||
|
#include "ftprintf.h"
|
||||||
|
|
||||||
|
size_t ft_count(long long int n)
|
||||||
|
{
|
||||||
|
size_t c;
|
||||||
|
|
||||||
|
c = 0;
|
||||||
|
if (n <= 0)
|
||||||
|
c = 1;
|
||||||
|
while (n != 0)
|
||||||
|
{
|
||||||
|
n = n / 10;
|
||||||
|
c++;
|
||||||
|
}
|
||||||
|
return (c);
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,27 @@
|
||||||
|
/* ************************************************************************** */
|
||||||
|
/* */
|
||||||
|
/* ::: :::::::: */
|
||||||
|
/* ft_hex_len.c :+: :+: :+: */
|
||||||
|
/* +:+ +:+ +:+ */
|
||||||
|
/* By: lfirmin <lfirmin@student.42.fr> +#+ +:+ +#+ */
|
||||||
|
/* +#+#+#+#+#+ +#+ */
|
||||||
|
/* Created: 2024/06/19 04:45:50 by lfirmin #+# #+# */
|
||||||
|
/* Updated: 2024/06/19 07:49:59 by lfirmin ### ########.fr */
|
||||||
|
/* */
|
||||||
|
/* ************************************************************************** */
|
||||||
|
#include "ftprintf.h"
|
||||||
|
|
||||||
|
int ft_hex_len(unsigned int nbr)
|
||||||
|
{
|
||||||
|
int i;
|
||||||
|
|
||||||
|
if (nbr == 0)
|
||||||
|
return (1);
|
||||||
|
i = 0;
|
||||||
|
while (nbr != 0)
|
||||||
|
{
|
||||||
|
i++;
|
||||||
|
nbr = nbr / 16;
|
||||||
|
}
|
||||||
|
return (i);
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,36 @@
|
||||||
|
/* ************************************************************************** */
|
||||||
|
/* */
|
||||||
|
/* ::: :::::::: */
|
||||||
|
/* ft_itoa.c :+: :+: :+: */
|
||||||
|
/* +:+ +:+ +:+ */
|
||||||
|
/* By: lfirmin <lfirmin@student.42.fr> +#+ +:+ +#+ */
|
||||||
|
/* +#+#+#+#+#+ +#+ */
|
||||||
|
/* Created: 2024/06/19 04:51:58 by lfirmin #+# #+# */
|
||||||
|
/* Updated: 2024/06/19 04:53:33 by lfirmin ### ########.fr */
|
||||||
|
/* */
|
||||||
|
/* ************************************************************************** */
|
||||||
|
#include "ftprintf.h"
|
||||||
|
|
||||||
|
char *ft_itoa(int n)
|
||||||
|
{
|
||||||
|
char *str;
|
||||||
|
size_t size;
|
||||||
|
long int num;
|
||||||
|
|
||||||
|
num = n;
|
||||||
|
size = ft_count(num);
|
||||||
|
str = (char *)malloc(size + 1);
|
||||||
|
if (!str)
|
||||||
|
return (NULL);
|
||||||
|
str[size] = '\0';
|
||||||
|
if (num < 0)
|
||||||
|
num = -num;
|
||||||
|
while (size--)
|
||||||
|
{
|
||||||
|
str[size] = num % 10 + '0';
|
||||||
|
num = num / 10;
|
||||||
|
if (n < 0 && size == 0)
|
||||||
|
str[size] = '-';
|
||||||
|
}
|
||||||
|
return (str);
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,20 @@
|
||||||
|
/* ************************************************************************** */
|
||||||
|
/* */
|
||||||
|
/* ::: :::::::: */
|
||||||
|
/* ft_print_ith.c :+: :+: :+: */
|
||||||
|
/* +:+ +:+ +:+ */
|
||||||
|
/* By: lfirmin <lfirmin@student.42.fr> +#+ +:+ +#+ */
|
||||||
|
/* +#+#+#+#+#+ +#+ */
|
||||||
|
/* Created: 2024/06/19 04:44:27 by lfirmin #+# #+# */
|
||||||
|
/* Updated: 2024/06/19 04:49:51 by lfirmin ### ########.fr */
|
||||||
|
/* */
|
||||||
|
/* ************************************************************************** */
|
||||||
|
#include "ftprintf.h"
|
||||||
|
|
||||||
|
int ft_print_ith(int fd, unsigned int nbr, const char str)
|
||||||
|
{
|
||||||
|
if (nbr == 0)
|
||||||
|
return (write(fd, "0", 1));
|
||||||
|
ft_conv_ith(fd, nbr, str);
|
||||||
|
return (ft_hex_len(nbr));
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,23 @@
|
||||||
|
/* ************************************************************************** */
|
||||||
|
/* */
|
||||||
|
/* ::: :::::::: */
|
||||||
|
/* ft_print_nbr.c :+: :+: :+: */
|
||||||
|
/* +:+ +:+ +:+ */
|
||||||
|
/* By: lfirmin <lfirmin@student.42.fr> +#+ +:+ +#+ */
|
||||||
|
/* +#+#+#+#+#+ +#+ */
|
||||||
|
/* Created: 2024/06/19 04:44:27 by lfirmin #+# #+# */
|
||||||
|
/* Updated: 2024/06/19 04:52:47 by lfirmin ### ########.fr */
|
||||||
|
/* */
|
||||||
|
/* ************************************************************************** */
|
||||||
|
#include "ftprintf.h"
|
||||||
|
|
||||||
|
int ft_print_nbr(int fd, int nb)
|
||||||
|
{
|
||||||
|
int len;
|
||||||
|
char *str;
|
||||||
|
|
||||||
|
str = ft_itoa(nb);
|
||||||
|
len = ft_printstr(fd, str);
|
||||||
|
free (str);
|
||||||
|
return (len);
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,18 @@
|
||||||
|
/* ************************************************************************** */
|
||||||
|
/* */
|
||||||
|
/* ::: :::::::: */
|
||||||
|
/* ft_print_null.c :+: :+: :+: */
|
||||||
|
/* +:+ +:+ +:+ */
|
||||||
|
/* By: lfirmin <lfirmin@student.42.fr> +#+ +:+ +#+ */
|
||||||
|
/* +#+#+#+#+#+ +#+ */
|
||||||
|
/* Created: 2024/06/19 07:01:50 by lfirmin #+# #+# */
|
||||||
|
/* Updated: 2024/06/19 07:46:39 by lfirmin ### ########.fr */
|
||||||
|
/* */
|
||||||
|
/* ************************************************************************** */
|
||||||
|
#include "ftprintf.h"
|
||||||
|
|
||||||
|
int ft_print_null(int fd)
|
||||||
|
{
|
||||||
|
write(fd, "(null)", 6);
|
||||||
|
return (6);
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,30 @@
|
||||||
|
/* ************************************************************************** */
|
||||||
|
/* */
|
||||||
|
/* ::: :::::::: */
|
||||||
|
/* ft_print_ptr.c :+: :+: :+: */
|
||||||
|
/* +:+ +:+ +:+ */
|
||||||
|
/* By: lfirmin <lfirmin@student.42.fr> +#+ +:+ +#+ */
|
||||||
|
/* +#+#+#+#+#+ +#+ */
|
||||||
|
/* Created: 2024/06/19 04:44:27 by lfirmin #+# #+# */
|
||||||
|
/* Updated: 2024/06/19 07:51:10 by lfirmin ### ########.fr */
|
||||||
|
/* */
|
||||||
|
/* ************************************************************************** */
|
||||||
|
#include "ftprintf.h"
|
||||||
|
|
||||||
|
int ft_print_ptr(int fd, unsigned long long ptr)
|
||||||
|
{
|
||||||
|
int print_length;
|
||||||
|
|
||||||
|
if (ptr == 0)
|
||||||
|
{
|
||||||
|
write(fd, "(nil)", 5);
|
||||||
|
return (5);
|
||||||
|
}
|
||||||
|
print_length = 2;
|
||||||
|
write(fd, "0x", 2);
|
||||||
|
{
|
||||||
|
ft_put_ptr(fd, ptr);
|
||||||
|
print_length = print_length + ft_adrr_len(ptr);
|
||||||
|
}
|
||||||
|
return (print_length);
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,23 @@
|
||||||
|
/* ************************************************************************** */
|
||||||
|
/* */
|
||||||
|
/* ::: :::::::: */
|
||||||
|
/* ft_print_unsigned.c :+: :+: :+: */
|
||||||
|
/* +:+ +:+ +:+ */
|
||||||
|
/* By: lfirmin <lfirmin@student.42.fr> +#+ +:+ +#+ */
|
||||||
|
/* +#+#+#+#+#+ +#+ */
|
||||||
|
/* Created: 2024/06/19 04:50:53 by lfirmin #+# #+# */
|
||||||
|
/* Updated: 2024/06/19 07:51:31 by lfirmin ### ########.fr */
|
||||||
|
/* */
|
||||||
|
/* ************************************************************************** */
|
||||||
|
#include "ftprintf.h"
|
||||||
|
|
||||||
|
int ft_print_unsigned(int fd, unsigned int nb)
|
||||||
|
{
|
||||||
|
int len;
|
||||||
|
char *str;
|
||||||
|
|
||||||
|
str = ft_unsigned_itoa(nb);
|
||||||
|
len = ft_printstr(fd, str);
|
||||||
|
free (str);
|
||||||
|
return (len);
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,18 @@
|
||||||
|
/* ************************************************************************** */
|
||||||
|
/* */
|
||||||
|
/* ::: :::::::: */
|
||||||
|
/* ft_printchar.c :+: :+: :+: */
|
||||||
|
/* +:+ +:+ +:+ */
|
||||||
|
/* By: lfirmin <lfirmin@student.42.fr> +#+ +:+ +#+ */
|
||||||
|
/* +#+#+#+#+#+ +#+ */
|
||||||
|
/* Created: 2024/06/19 04:56:02 by lfirmin #+# #+# */
|
||||||
|
/* Updated: 2024/06/19 04:56:25 by lfirmin ### ########.fr */
|
||||||
|
/* */
|
||||||
|
/* ************************************************************************** */
|
||||||
|
#include "ftprintf.h"
|
||||||
|
|
||||||
|
int ft_printchar(int fd, int c)
|
||||||
|
{
|
||||||
|
write (fd, &c, 1);
|
||||||
|
return (1);
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,39 @@
|
||||||
|
/* ************************************************************************** */
|
||||||
|
/* */
|
||||||
|
/* ::: :::::::: */
|
||||||
|
/* ft_printf.c :+: :+: :+: */
|
||||||
|
/* +:+ +:+ +:+ */
|
||||||
|
/* By: lfirmin <lfirmin@student.42.fr> +#+ +:+ +#+ */
|
||||||
|
/* +#+#+#+#+#+ +#+ */
|
||||||
|
/* Created: 2024/06/19 04:44:27 by lfirmin #+# #+# */
|
||||||
|
/* Updated: 2024/06/19 04:55:41 by lfirmin ### ########.fr */
|
||||||
|
/* */
|
||||||
|
/* ************************************************************************** */
|
||||||
|
#include "ftprintf.h"
|
||||||
|
|
||||||
|
int ft_printf_fd(int fd, const char *str, ...)
|
||||||
|
{
|
||||||
|
int i;
|
||||||
|
va_list list;
|
||||||
|
int count;
|
||||||
|
|
||||||
|
i = 0;
|
||||||
|
count = 0;
|
||||||
|
va_start(list, str);
|
||||||
|
while (str[i])
|
||||||
|
{
|
||||||
|
if (str[i] == '%')
|
||||||
|
{
|
||||||
|
count += ft_sorting(list, str[i + 1], fd);
|
||||||
|
i++;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
write (fd, &str[i], 1);
|
||||||
|
count++;
|
||||||
|
}
|
||||||
|
i++;
|
||||||
|
}
|
||||||
|
va_end(list);
|
||||||
|
return (count);
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,18 @@
|
||||||
|
/* ************************************************************************** */
|
||||||
|
/* */
|
||||||
|
/* ::: :::::::: */
|
||||||
|
/* ft_printpercent.c :+: :+: :+: */
|
||||||
|
/* +:+ +:+ +:+ */
|
||||||
|
/* By: lfirmin <lfirmin@student.42.fr> +#+ +:+ +#+ */
|
||||||
|
/* +#+#+#+#+#+ +#+ */
|
||||||
|
/* Created: 2024/06/19 04:47:38 by lfirmin #+# #+# */
|
||||||
|
/* Updated: 2024/06/19 07:50:08 by lfirmin ### ########.fr */
|
||||||
|
/* */
|
||||||
|
/* ************************************************************************** */
|
||||||
|
#include "ftprintf.h"
|
||||||
|
|
||||||
|
int ft_printpercent(int fd)
|
||||||
|
{
|
||||||
|
ft_putchar(fd, '%');
|
||||||
|
return (1);
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,27 @@
|
||||||
|
/* ************************************************************************** */
|
||||||
|
/* */
|
||||||
|
/* ::: :::::::: */
|
||||||
|
/* ft_printstr.c :+: :+: :+: */
|
||||||
|
/* +:+ +:+ +:+ */
|
||||||
|
/* By: lfirmin <lfirmin@student.42.fr> +#+ +:+ +#+ */
|
||||||
|
/* +#+#+#+#+#+ +#+ */
|
||||||
|
/* Created: 2024/06/19 04:55:08 by lfirmin #+# #+# */
|
||||||
|
/* Updated: 2024/06/19 07:46:05 by lfirmin ### ########.fr */
|
||||||
|
/* */
|
||||||
|
/* ************************************************************************** */
|
||||||
|
#include "ftprintf.h"
|
||||||
|
|
||||||
|
int ft_printstr(int fd, char *s)
|
||||||
|
{
|
||||||
|
int i;
|
||||||
|
|
||||||
|
if (!s)
|
||||||
|
return (ft_print_null(fd));
|
||||||
|
i = 0;
|
||||||
|
while (s[i])
|
||||||
|
{
|
||||||
|
write (fd, &s[i], 1);
|
||||||
|
i++;
|
||||||
|
}
|
||||||
|
return (i);
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,28 @@
|
||||||
|
/* ************************************************************************** */
|
||||||
|
/* */
|
||||||
|
/* ::: :::::::: */
|
||||||
|
/* ft_put_ptr.c :+: :+: :+: */
|
||||||
|
/* +:+ +:+ +:+ */
|
||||||
|
/* By: lfirmin <lfirmin@student.42.fr> +#+ +:+ +#+ */
|
||||||
|
/* +#+#+#+#+#+ +#+ */
|
||||||
|
/* Created: 2024/06/19 04:54:06 by lfirmin #+# #+# */
|
||||||
|
/* Updated: 2024/06/19 07:46:52 by lfirmin ### ########.fr */
|
||||||
|
/* */
|
||||||
|
/* ************************************************************************** */
|
||||||
|
#include "ftprintf.h"
|
||||||
|
|
||||||
|
void ft_put_ptr(int fd, unsigned long long num)
|
||||||
|
{
|
||||||
|
if (num >= 16)
|
||||||
|
{
|
||||||
|
ft_put_ptr(fd, num / 16);
|
||||||
|
ft_put_ptr(fd, num % 16);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
if (num <= 9)
|
||||||
|
ft_putchar(fd, num + '0');
|
||||||
|
else
|
||||||
|
ft_putchar(fd, num - 10 + 'a');
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,17 @@
|
||||||
|
/* ************************************************************************** */
|
||||||
|
/* */
|
||||||
|
/* ::: :::::::: */
|
||||||
|
/* ft_putchar.c :+: :+: :+: */
|
||||||
|
/* +:+ +:+ +:+ */
|
||||||
|
/* By: lfirmin <lfirmin@student.42.fr> +#+ +:+ +#+ */
|
||||||
|
/* +#+#+#+#+#+ +#+ */
|
||||||
|
/* Created: 2024/06/19 04:45:04 by lfirmin #+# #+# */
|
||||||
|
/* Updated: 2024/06/19 04:49:11 by lfirmin ### ########.fr */
|
||||||
|
/* */
|
||||||
|
/* ************************************************************************** */
|
||||||
|
#include "ftprintf.h"
|
||||||
|
|
||||||
|
void ft_putchar(int fd, char c)
|
||||||
|
{
|
||||||
|
write(fd, &c, 1);
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,34 @@
|
||||||
|
/* ************************************************************************** */
|
||||||
|
/* */
|
||||||
|
/* ::: :::::::: */
|
||||||
|
/* ft_sorting.c :+: :+: :+: */
|
||||||
|
/* +:+ +:+ +:+ */
|
||||||
|
/* By: lfirmin <lfirmin@student.42.fr> +#+ +:+ +#+ */
|
||||||
|
/* +#+#+#+#+#+ +#+ */
|
||||||
|
/* Created: 2024/06/19 04:56:45 by lfirmin #+# #+# */
|
||||||
|
/* Updated: 2024/06/19 07:51:17 by lfirmin ### ########.fr */
|
||||||
|
/* */
|
||||||
|
/* ************************************************************************** */
|
||||||
|
#include "ftprintf.h"
|
||||||
|
|
||||||
|
int ft_sorting(va_list list, const char str, int fd)
|
||||||
|
{
|
||||||
|
int count;
|
||||||
|
|
||||||
|
count = 0;
|
||||||
|
if (str == 'c')
|
||||||
|
count += ft_printchar(fd, va_arg(list, int));
|
||||||
|
else if (str == 's')
|
||||||
|
count += ft_printstr(fd, va_arg(list, char *));
|
||||||
|
else if (str == 'p')
|
||||||
|
count += ft_print_ptr(fd, va_arg(list, unsigned long long));
|
||||||
|
else if (str == 'd' || str == 'i')
|
||||||
|
count += ft_print_nbr(fd, va_arg(list, int));
|
||||||
|
else if (str == 'u')
|
||||||
|
count += ft_print_unsigned(fd, va_arg(list, unsigned int));
|
||||||
|
else if (str == 'x' || str == 'X')
|
||||||
|
count += ft_print_ith(fd, va_arg(list, unsigned int), str);
|
||||||
|
else if (str == '%')
|
||||||
|
count += ft_printpercent(fd);
|
||||||
|
return (count);
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,34 @@
|
||||||
|
/* ************************************************************************** */
|
||||||
|
/* */
|
||||||
|
/* ::: :::::::: */
|
||||||
|
/* ft_unsigned_itoa.c :+: :+: :+: */
|
||||||
|
/* +:+ +:+ +:+ */
|
||||||
|
/* By: lfirmin <lfirmin@student.42.fr> +#+ +:+ +#+ */
|
||||||
|
/* +#+#+#+#+#+ +#+ */
|
||||||
|
/* Created: 2024/06/19 04:51:27 by lfirmin #+# #+# */
|
||||||
|
/* Updated: 2024/06/19 07:45:46 by lfirmin ### ########.fr */
|
||||||
|
/* */
|
||||||
|
/* ************************************************************************** */
|
||||||
|
#include "ftprintf.h"
|
||||||
|
|
||||||
|
char *ft_unsigned_itoa(unsigned int n)
|
||||||
|
{
|
||||||
|
char *str;
|
||||||
|
size_t size;
|
||||||
|
long int num;
|
||||||
|
|
||||||
|
num = n;
|
||||||
|
size = ft_count(num);
|
||||||
|
str = (char *)malloc(size + 1);
|
||||||
|
if (!str)
|
||||||
|
return (NULL);
|
||||||
|
str[size] = '\0';
|
||||||
|
if (num < 0)
|
||||||
|
num = -num;
|
||||||
|
while (size--)
|
||||||
|
{
|
||||||
|
str[size] = num % 10 + '0';
|
||||||
|
num = num / 10;
|
||||||
|
}
|
||||||
|
return (str);
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,43 @@
|
||||||
|
/* ************************************************************************** */
|
||||||
|
/* */
|
||||||
|
/* ::: :::::::: */
|
||||||
|
/* ftprintf.h :+: :+: :+: */
|
||||||
|
/* +:+ +:+ +:+ */
|
||||||
|
/* By: lfirmin <lfirmin@student.42.fr> +#+ +:+ +#+ */
|
||||||
|
/* +#+#+#+#+#+ +#+ */
|
||||||
|
/* Created: 2024/06/19 04:44:27 by lfirmin #+# #+# */
|
||||||
|
/* Updated: 2024/06/19 07:49:08 by lfirmin ### ########.fr */
|
||||||
|
/* */
|
||||||
|
/* ************************************************************************** */
|
||||||
|
|
||||||
|
#ifndef FTPRINTF_H
|
||||||
|
# define FTPRINTF_H
|
||||||
|
|
||||||
|
# include <stdarg.h>
|
||||||
|
# include <unistd.h>
|
||||||
|
# include <stdio.h>
|
||||||
|
# include "stdlib.h"
|
||||||
|
|
||||||
|
void ft_putchar(int fd, char c);
|
||||||
|
void ft_put_ptr(int fd, unsigned long long num);
|
||||||
|
void ft_conv_ith(int fd, unsigned int nbr, const char str);
|
||||||
|
|
||||||
|
int ft_hex_len(unsigned int nbr);
|
||||||
|
int ft_sorting(va_list list, const char str, int fd);
|
||||||
|
int ft_printf_fd(int fd, const char *str, ...);
|
||||||
|
int ft_print_ith(int fd, unsigned int nbr, const char str);
|
||||||
|
int ft_printchar(int fd, int c);
|
||||||
|
int ft_printstr(int fd, char *s);
|
||||||
|
int ft_printpercent(int fd);
|
||||||
|
int ft_print_unsigned(int fd, unsigned int nb);
|
||||||
|
int ft_print_nbr(int fd, int nb);
|
||||||
|
int ft_print_ptr(int fd, unsigned long long ptr);
|
||||||
|
int ft_adrr_len(unsigned long long nbr);
|
||||||
|
int ft_print_null(int fd);
|
||||||
|
|
||||||
|
char *ft_itoa(int n);
|
||||||
|
char *ft_unsigned_itoa(unsigned int n);
|
||||||
|
|
||||||
|
size_t ft_count(long long int n);
|
||||||
|
|
||||||
|
#endif
|
||||||
Loading…
Reference in New Issue