diff options
| author | Charles <sircharlesaze@gmail.com> | 2019-10-30 04:58:00 +0100 |
|---|---|---|
| committer | Charles <sircharlesaze@gmail.com> | 2019-10-30 04:58:00 +0100 |
| commit | 001786c8ec464b1ae3e6321acfd984227cb1bbee (patch) | |
| tree | 6c71dd227eb8a8c28cd529cb4cfc31879e845831 /utils.c | |
| parent | d963161275bcb3af4097872ba033da3ff9255606 (diff) | |
| download | ft_printf-001786c8ec464b1ae3e6321acfd984227cb1bbee.tar.gz ft_printf-001786c8ec464b1ae3e6321acfd984227cb1bbee.tar.bz2 ft_printf-001786c8ec464b1ae3e6321acfd984227cb1bbee.zip | |
Added flags for x and X
Diffstat (limited to 'utils.c')
| -rw-r--r-- | utils.c | 42 |
1 files changed, 38 insertions, 4 deletions
@@ -6,7 +6,7 @@ /* By: cacharle <marvin@42.fr> +#+ +:+ +#+ */ /* +#+#+#+#+#+ +#+ */ /* Created: 2019/10/29 00:12:40 by cacharle #+# #+# */ -/* Updated: 2019/10/30 03:53:16 by cacharle ### ########.fr */ +/* Updated: 2019/10/30 04:06:52 by cacharle ### ########.fr */ /* */ /* ************************************************************************** */ @@ -30,10 +30,10 @@ int strrchr_index(const char *s, char c) return (i); } -static int nbrlen_radix(long int nbr, int radix) +static int nbrlen_radix(long long int nbr, int radix) { - int counter; - long unsigned int u_nbr; + int counter; + long long unsigned int u_nbr; if (nbr == 0) return (1); @@ -74,3 +74,37 @@ char *ft_itoa_base(long long int n, char *base) } return (str); } + +static int nbrlen_unsigned_radix(long long unsigned int nbr, int radix) +{ + int counter; + + if (nbr == 0) + return (1); + counter = 0; + while (nbr > 0) + { + nbr /= radix; + counter++; + } + return (counter); +} + +char *ft_itoa_unsigned_base(long long unsigned int n, char *base) +{ + char *str; + int len; + int radix; + + radix = ft_strlen(base); + len = nbrlen_unsigned_radix(n, radix); + if ((str = (char*)malloc(sizeof(char) * (len + 1))) == NULL) + return (NULL); + str[len] = '\0'; + while (--len >= 0) + { + str[len] = base[n % radix]; + n /= radix; + } + return (str); +} |
