Nothing to see here
This commit is contained in:
121
special.c
Normal file
121
special.c
Normal file
@@ -0,0 +1,121 @@
|
||||
#include "main.h"
|
||||
/**
|
||||
* printf_37 - prints the char 37.
|
||||
* Return: 1.
|
||||
*/
|
||||
int printf_37(void)
|
||||
{
|
||||
_putchar(37);
|
||||
return (1);
|
||||
}
|
||||
|
||||
/**
|
||||
* printf_rot13 - printf str to ROT13 place into buffer
|
||||
* @args: type struct va_arg where is allocated printf arguments
|
||||
* Return: counter
|
||||
*/
|
||||
int printf_rot13(va_list args)
|
||||
{
|
||||
int i, j, counter = 0;
|
||||
int k = 0;
|
||||
char *s = va_arg(args, char*);
|
||||
char alpha[] = {"abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"};
|
||||
char beta[] = {"nopqrstuvwxyzabcdefghijklmNOPQRSTUVWXYZABCDEFGHIJKLM"};
|
||||
|
||||
if (s == NULL)
|
||||
s = "(null)";
|
||||
for (i = 0; s[i]; i++)
|
||||
{
|
||||
k = 0;
|
||||
for (j = 0; alpha[j] && !k; j++)
|
||||
{
|
||||
if (s[i] == alpha[j])
|
||||
{
|
||||
_putchar(beta[j]);
|
||||
counter++;
|
||||
k = 1;
|
||||
}
|
||||
}
|
||||
if (!k)
|
||||
{
|
||||
_putchar(s[i]);
|
||||
counter++;
|
||||
}
|
||||
}
|
||||
return (counter);
|
||||
}
|
||||
|
||||
/**
|
||||
* printf_pointer - prints an hexgecimal number.
|
||||
* @val: arguments.
|
||||
* Return: counter.
|
||||
*/
|
||||
int printf_pointer(va_list val)
|
||||
{
|
||||
void *p;
|
||||
char *s = "(nil)";
|
||||
long int a;
|
||||
int b;
|
||||
int i;
|
||||
|
||||
p = va_arg(val, void*);
|
||||
if (p == NULL)
|
||||
{
|
||||
for (i = 0; s[i] != '\0'; i++)
|
||||
{
|
||||
_putchar(s[i]);
|
||||
}
|
||||
return (i);
|
||||
}
|
||||
|
||||
a = (unsigned long int)p;
|
||||
_putchar('0');
|
||||
_putchar('x');
|
||||
b = printf_hex_aux(a);
|
||||
return (b + 2);
|
||||
}
|
||||
|
||||
/**
|
||||
* printf_int - prints integer
|
||||
* @args: argument to print
|
||||
* Return: number of characters printed
|
||||
*/
|
||||
|
||||
int printf_int(va_list args)
|
||||
{
|
||||
int n = va_arg(args, int);
|
||||
int num, last = n % 10, digit, exp = 1;
|
||||
int i = 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);
|
||||
}
|
||||
Reference in New Issue
Block a user