Nothing to see here
This commit is contained in:
154
running-out-of-names.c
Normal file
154
running-out-of-names.c
Normal file
@@ -0,0 +1,154 @@
|
||||
#include "main.h"
|
||||
|
||||
/**
|
||||
* printf_dec - prints decimal
|
||||
* @args: argument to print
|
||||
* Return: number of characters printed
|
||||
*/
|
||||
|
||||
int printf_dec(va_list args)
|
||||
{
|
||||
int n = va_arg(args, int);
|
||||
int num, last = n % 10, digit;
|
||||
int i = 1;
|
||||
int exp = 1;
|
||||
|
||||
n = n / 10;
|
||||
num = n;
|
||||
|
||||
if (last < 0)
|
||||
{
|
||||
_putchar('-');
|
||||
num = -num;
|
||||
n = -n;
|
||||
last = -last;
|
||||
i++;
|
||||
}
|
||||
if (num > 0)
|
||||
{
|
||||
while (num / 10 != 0)
|
||||
{
|
||||
exp = exp * 10;
|
||||
num = num / 10;
|
||||
}
|
||||
num = n;
|
||||
while (exp > 0)
|
||||
{
|
||||
digit = num / exp;
|
||||
_putchar(digit + '0');
|
||||
num = num - (digit * exp);
|
||||
exp = exp / 10;
|
||||
i++;
|
||||
}
|
||||
}
|
||||
_putchar(last + '0');
|
||||
|
||||
return (i);
|
||||
}
|
||||
|
||||
#include "main.h"
|
||||
|
||||
/**
|
||||
* printf_oct - prints an octal number.
|
||||
* @val: arguments.
|
||||
* Return: counter.
|
||||
*/
|
||||
int printf_oct(va_list val)
|
||||
{
|
||||
int i;
|
||||
int *array;
|
||||
int counter = 0;
|
||||
unsigned int num = va_arg(val, unsigned int);
|
||||
unsigned int temp = num;
|
||||
|
||||
while (num / 8 != 0)
|
||||
{
|
||||
num /= 8;
|
||||
counter++;
|
||||
}
|
||||
counter++;
|
||||
array = malloc(counter * sizeof(int));
|
||||
|
||||
for (i = 0; i < counter; i++)
|
||||
{
|
||||
array[i] = temp % 8;
|
||||
temp /= 8;
|
||||
}
|
||||
for (i = counter - 1; i >= 0; i--)
|
||||
{
|
||||
_putchar(array[i] + '0');
|
||||
}
|
||||
free(array);
|
||||
return (counter);
|
||||
}
|
||||
|
||||
/**
|
||||
* printf_hex_aux - prints an hexgecimal number.
|
||||
* @num: arguments.
|
||||
* Return: counter.
|
||||
*/
|
||||
int printf_hex_aux(unsigned long int num)
|
||||
{
|
||||
long int i;
|
||||
long int *array;
|
||||
long int counter = 0;
|
||||
unsigned long int temp = num;
|
||||
|
||||
while (num / 16 != 0)
|
||||
{
|
||||
num /= 16;
|
||||
counter++;
|
||||
}
|
||||
counter++;
|
||||
array = malloc(counter * sizeof(long int));
|
||||
|
||||
for (i = 0; i < counter; i++)
|
||||
{
|
||||
array[i] = temp % 16;
|
||||
temp /= 16;
|
||||
}
|
||||
for (i = counter - 1; i >= 0; i--)
|
||||
{
|
||||
if (array[i] > 9)
|
||||
array[i] = array[i] + 39;
|
||||
_putchar(array[i] + '0');
|
||||
}
|
||||
free(array);
|
||||
return (counter);
|
||||
}
|
||||
|
||||
/**
|
||||
* printf_hex - prints an hexgecimal number.
|
||||
* @val: arguments.
|
||||
* Return: counter.
|
||||
*/
|
||||
int printf_hex(va_list val)
|
||||
{
|
||||
int i;
|
||||
int *array;
|
||||
int counter = 0;
|
||||
unsigned int num = va_arg(val, unsigned int);
|
||||
unsigned int temp = num;
|
||||
|
||||
while (num / 16 != 0)
|
||||
{
|
||||
num /= 16;
|
||||
counter++;
|
||||
}
|
||||
counter++;
|
||||
array = malloc(counter * sizeof(int));
|
||||
|
||||
for (i = 0; i < counter; i++)
|
||||
{
|
||||
array[i] = temp % 16;
|
||||
temp /= 16;
|
||||
}
|
||||
for (i = counter - 1; i >= 0; i--)
|
||||
{
|
||||
if (array[i] > 9)
|
||||
array[i] = array[i] + 39;
|
||||
_putchar(array[i] + '0');
|
||||
}
|
||||
free(array);
|
||||
return (counter);
|
||||
}
|
||||
Reference in New Issue
Block a user