#include "main.h" /** * printf_37 - prints the char 37. * Return: 1. */ int printf_37(void) { _putchar(37); return (1); } /** * printf_rot13 - str to ROT13 place into buffer * @args: 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*); /* basic alphabet */ char alpha[] = {"abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"}; /* shifted by 13 */ 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); }