42 lines
618 B
C
42 lines
618 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);
|
|
}
|