Fini printf
This commit is contained in:
parent
06647d6034
commit
95b7ca347f
53
ft_itoa.c
53
ft_itoa.c
|
@ -1,53 +0,0 @@
|
||||||
/* ************************************************************************** */
|
|
||||||
/* */
|
|
||||||
/* ::: :::::::: */
|
|
||||||
/* ft_itoa.c :+: :+: :+: */
|
|
||||||
/* +:+ +:+ +:+ */
|
|
||||||
/* By: erey-bet <marvin@42.fr> +#+ +:+ +#+ */
|
|
||||||
/* +#+#+#+#+#+ +#+ */
|
|
||||||
/* Created: 2022/10/04 17:12:52 by erey-bet #+# #+# */
|
|
||||||
/* Updated: 2022/10/10 22:15:30 by erey-bet ### ########.fr */
|
|
||||||
/* */
|
|
||||||
/* ************************************************************************** */
|
|
||||||
|
|
||||||
#include "ft_printf.h"
|
|
||||||
|
|
||||||
static void ft_itoa_bis(char *str, int len, int i, long nl)
|
|
||||||
{
|
|
||||||
while (len > 1)
|
|
||||||
{
|
|
||||||
len--;
|
|
||||||
str[i] = (nl / ft_power(10, len) % 10) + 48;
|
|
||||||
i++;
|
|
||||||
}
|
|
||||||
str[i] = nl % 10 + 48;
|
|
||||||
i++;
|
|
||||||
str[i] = '\0';
|
|
||||||
}
|
|
||||||
|
|
||||||
char *ft_itoa(int n)
|
|
||||||
{
|
|
||||||
char *str;
|
|
||||||
int len;
|
|
||||||
int i;
|
|
||||||
long nl;
|
|
||||||
|
|
||||||
nl = n;
|
|
||||||
nl *= (n > 0) - (n < 0);
|
|
||||||
len = ft_get_size(nl);
|
|
||||||
i = 0;
|
|
||||||
if (n < 0)
|
|
||||||
{
|
|
||||||
str = malloc(len + 2);
|
|
||||||
if (str == NULL)
|
|
||||||
return (NULL);
|
|
||||||
str[i] = '-';
|
|
||||||
i++;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
str = malloc(len + 1);
|
|
||||||
if (str == NULL)
|
|
||||||
return (NULL);
|
|
||||||
ft_itoa_bis(str, len, i, nl);
|
|
||||||
return (str);
|
|
||||||
}
|
|
|
@ -6,7 +6,7 @@
|
||||||
/* By: erey-bet <marvin@42.fr> +#+ +:+ +#+ */
|
/* By: erey-bet <marvin@42.fr> +#+ +:+ +#+ */
|
||||||
/* +#+#+#+#+#+ +#+ */
|
/* +#+#+#+#+#+ +#+ */
|
||||||
/* Created: 2022/10/12 16:27:59 by erey-bet #+# #+# */
|
/* Created: 2022/10/12 16:27:59 by erey-bet #+# #+# */
|
||||||
/* Updated: 2022/10/15 23:19:38 by erey-bet ### ########.fr */
|
/* Updated: 2022/11/21 19:14:36 by erey-bet ### ########.fr */
|
||||||
/* */
|
/* */
|
||||||
/* ************************************************************************** */
|
/* ************************************************************************** */
|
||||||
|
|
||||||
|
@ -33,9 +33,9 @@ static int ft_post_character_bis(char format, va_list args)
|
||||||
else if (format == 'u')
|
else if (format == 'u')
|
||||||
count = ft_putunbr(va_arg(args, unsigned int));
|
count = ft_putunbr(va_arg(args, unsigned int));
|
||||||
else if (format == 'x')
|
else if (format == 'x')
|
||||||
count = ft_putnbrhex(va_arg(args, int));
|
count = ft_putnbrhex(va_arg(args, unsigned int));
|
||||||
else if (format == 'X')
|
else if (format == 'X')
|
||||||
count = ft_putnbrhex_upper(va_arg(args, int));
|
count = ft_putnbrhex_upper(va_arg(args, unsigned int));
|
||||||
else if (format == '%')
|
else if (format == '%')
|
||||||
ft_putchar('%');
|
ft_putchar('%');
|
||||||
else if (format == 'p')
|
else if (format == 'p')
|
||||||
|
|
|
@ -6,7 +6,7 @@
|
||||||
/* By: erey-bet <marvin@42.fr> +#+ +:+ +#+ */
|
/* By: erey-bet <marvin@42.fr> +#+ +:+ +#+ */
|
||||||
/* +#+#+#+#+#+ +#+ */
|
/* +#+#+#+#+#+ +#+ */
|
||||||
/* Created: 2022/09/26 16:31:10 by erey-bet #+# #+# */
|
/* Created: 2022/09/26 16:31:10 by erey-bet #+# #+# */
|
||||||
/* Updated: 2022/10/15 23:16:11 by erey-bet ### ########.fr */
|
/* Updated: 2022/11/21 19:31:17 by erey-bet ### ########.fr */
|
||||||
/* */
|
/* */
|
||||||
/* ************************************************************************** */
|
/* ************************************************************************** */
|
||||||
|
|
||||||
|
@ -17,16 +17,15 @@
|
||||||
# include <stdlib.h>
|
# include <stdlib.h>
|
||||||
# include <unistd.h>
|
# include <unistd.h>
|
||||||
|
|
||||||
int ft_printf(const char *str, ...);
|
int ft_printf(const char *str, ...);
|
||||||
void ft_putchar(char c);
|
void ft_putchar(char c);
|
||||||
int ft_putstr(char *s);
|
int ft_putstr(char *s);
|
||||||
char *ft_itoa(int n);
|
|
||||||
int ft_power(int nb, int power);
|
int ft_power(int nb, int power);
|
||||||
int ft_get_size(long long n);
|
int ft_get_size(long long n);
|
||||||
int ft_putnbr(int n);
|
int ft_putnbr(int n);
|
||||||
int ft_putunbr(unsigned int n);
|
int ft_putunbr(unsigned int n);
|
||||||
int ft_putnbrhex(int v);
|
int ft_putnbrhex(unsigned int v);
|
||||||
int ft_putnbrhex_upper(int v);
|
int ft_putnbrhex_upper(unsigned int v);
|
||||||
int ft_putvd(void *v);
|
int ft_putvd(void *v);
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -6,36 +6,36 @@
|
||||||
/* By: erey-bet <marvin@42.fr> +#+ +:+ +#+ */
|
/* By: erey-bet <marvin@42.fr> +#+ +:+ +#+ */
|
||||||
/* +#+#+#+#+#+ +#+ */
|
/* +#+#+#+#+#+ +#+ */
|
||||||
/* Created: 2022/10/14 23:24:36 by erey-bet #+# #+# */
|
/* Created: 2022/10/14 23:24:36 by erey-bet #+# #+# */
|
||||||
/* Updated: 2022/10/15 22:20:19 by erey-bet ### ########.fr */
|
/* Updated: 2022/11/21 19:25:08 by erey-bet ### ########.fr */
|
||||||
/* */
|
/* */
|
||||||
/* ************************************************************************** */
|
/* ************************************************************************** */
|
||||||
|
|
||||||
#include "ft_printf.h"
|
#include "ft_printf.h"
|
||||||
|
|
||||||
int ft_putnbrhex(int v)
|
int ft_putnbrhex(unsigned int v)
|
||||||
{
|
{
|
||||||
int tmp;
|
int tmp;
|
||||||
int count;
|
int count;
|
||||||
|
char hex[100];
|
||||||
|
|
||||||
if (v == 0)
|
if (v == 0)
|
||||||
ft_putchar('0');
|
|
||||||
count = 0;
|
|
||||||
if (v < 0)
|
|
||||||
{
|
{
|
||||||
write(1, "-", 1);
|
ft_putchar('0');
|
||||||
v *= -1;
|
return (1);
|
||||||
count++;
|
|
||||||
}
|
}
|
||||||
|
count = 0;
|
||||||
tmp = 0;
|
tmp = 0;
|
||||||
while (v > 0)
|
while (v > 0)
|
||||||
{
|
{
|
||||||
tmp = v % 16;
|
tmp = v % 16;
|
||||||
if (tmp < 10)
|
if (tmp < 10)
|
||||||
ft_putchar(tmp + 48);
|
hex[count++] = (tmp + 48);
|
||||||
else
|
else
|
||||||
ft_putchar(tmp + 87);
|
hex[count++] = (tmp + 87);
|
||||||
v = v / 16;
|
v = v / 16;
|
||||||
count++;
|
|
||||||
}
|
}
|
||||||
|
tmp = count;
|
||||||
|
while (--tmp >= 0)
|
||||||
|
ft_putchar(hex[tmp]);
|
||||||
return (count);
|
return (count);
|
||||||
}
|
}
|
||||||
|
|
|
@ -6,36 +6,36 @@
|
||||||
/* By: erey-bet <marvin@42.fr> +#+ +:+ +#+ */
|
/* By: erey-bet <marvin@42.fr> +#+ +:+ +#+ */
|
||||||
/* +#+#+#+#+#+ +#+ */
|
/* +#+#+#+#+#+ +#+ */
|
||||||
/* Created: 2022/10/14 23:24:36 by erey-bet #+# #+# */
|
/* Created: 2022/10/14 23:24:36 by erey-bet #+# #+# */
|
||||||
/* Updated: 2022/10/15 22:20:49 by erey-bet ### ########.fr */
|
/* Updated: 2022/11/21 19:16:57 by erey-bet ### ########.fr */
|
||||||
/* */
|
/* */
|
||||||
/* ************************************************************************** */
|
/* ************************************************************************** */
|
||||||
|
|
||||||
#include "ft_printf.h"
|
#include "ft_printf.h"
|
||||||
|
|
||||||
int ft_putnbrhex_upper(int v)
|
int ft_putnbrhex_upper(unsigned int v)
|
||||||
{
|
{
|
||||||
int tmp;
|
int tmp;
|
||||||
int count;
|
int count;
|
||||||
|
char hex[100];
|
||||||
|
|
||||||
if (v == 0)
|
if (v == 0)
|
||||||
ft_putchar('0');
|
|
||||||
count = 0;
|
|
||||||
if (v < 0)
|
|
||||||
{
|
{
|
||||||
write(1, "-", 1);
|
ft_putchar('0');
|
||||||
v *= -1;
|
return (1);
|
||||||
count++;
|
|
||||||
}
|
}
|
||||||
|
count = 0;
|
||||||
tmp = 0;
|
tmp = 0;
|
||||||
while (v > 0)
|
while (v > 0)
|
||||||
{
|
{
|
||||||
tmp = v % 16;
|
tmp = v % 16;
|
||||||
if (tmp < 10)
|
if (tmp < 10)
|
||||||
ft_putchar(tmp + 48);
|
hex[count++] = (tmp + 48);
|
||||||
else
|
else
|
||||||
ft_putchar(tmp + 55);
|
hex[count++] = (tmp + 55);
|
||||||
v = v / 16;
|
v = v / 16;
|
||||||
count++;
|
|
||||||
}
|
}
|
||||||
|
tmp = count;
|
||||||
|
while (--tmp >= 0)
|
||||||
|
ft_putchar(hex[tmp]);
|
||||||
return (count);
|
return (count);
|
||||||
}
|
}
|
||||||
|
|
|
@ -6,7 +6,7 @@
|
||||||
/* By: erey-bet <marvin@42.fr> +#+ +:+ +#+ */
|
/* By: erey-bet <marvin@42.fr> +#+ +:+ +#+ */
|
||||||
/* +#+#+#+#+#+ +#+ */
|
/* +#+#+#+#+#+ +#+ */
|
||||||
/* Created: 2022/10/14 23:01:21 by erey-bet #+# #+# */
|
/* Created: 2022/10/14 23:01:21 by erey-bet #+# #+# */
|
||||||
/* Updated: 2022/10/15 22:15:15 by erey-bet ### ########.fr */
|
/* Updated: 2022/11/21 19:26:59 by erey-bet ### ########.fr */
|
||||||
/* */
|
/* */
|
||||||
/* ************************************************************************** */
|
/* ************************************************************************** */
|
||||||
|
|
||||||
|
@ -14,8 +14,8 @@
|
||||||
|
|
||||||
static int ft_putnbrhexull(unsigned long v)
|
static int ft_putnbrhexull(unsigned long v)
|
||||||
{
|
{
|
||||||
int tmp;
|
int tmp;
|
||||||
int count;
|
int count;
|
||||||
char hex[100];
|
char hex[100];
|
||||||
|
|
||||||
count = 0;
|
count = 0;
|
||||||
|
|
Loading…
Reference in a new issue