Files
printf/exclusive.c
2023-08-22 23:59:13 +03:00

42 lines
617 B
C

#include "main.h"
/**
* printf_exclusive_string - print exclusuives string.
* @val: argument.
* Return: the length of the string.
*/
int printf_exclusive_string(va_list val)
{
char *s;
int i, len = 0;
int cast;
s = va_arg(val, char *);
if (s == NULL)
s = "(null)";
for (i = 0; s[i] != '\0'; i++)
{
if (s[i] < 32 || s[i] >= 127)
{
/* speical */
_putchar('\\');
_putchar('x');
len = len + 2;
cast = s[i];
if (cast < 16)
{
_putchar('0');
len++;
}
/* epic hex*/
len = len + printf_HEX_aux(cast);
}
else
{
_putchar(s[i]);
len++;
}
}
return (len);
}