-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathfunction_manager.c
68 lines (66 loc) · 1.24 KB
/
function_manager.c
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
#include "holberton.h"
#include <stdarg.h>
/**
*function_manager - function manager
*@c: character to find
*@arg: va_list type
*Description: This function call other functions
* when the character is found
*Return: count of printed characters
*/
int function_manager(char c, va_list arg)
{
int cont = 0;
cont = _switch(c, arg);
if (c == 'p')
cont = print_ptr(arg);
return (cont);
}
/**
*_switch - switch
*@c: character to find
*@arg: va_list type
*Description: This function evaluate cases
*Return: count of printed characters
*/
int _switch(char c, va_list arg)
{
int cont = 0;
switch (c)
{
case 'b':
cont += print_unsign(arg, 2);
break;
case 'c':
cont += print_character(arg);
break;
case 'd':
case 'i':
cont += print_sign(arg, 10);
break;
case 'o':
cont += print_unsign(arg, 8);
break;
case 'r':
cont += print_rev(arg);
break;
case 'R':
cont += print_rot13(arg);
break;
case 's':
cont += print_string(arg);
break;
case 'u':
cont += print_unsign(arg, 10);
break;
case 'x':
cont += print_base16_upper_lower(arg, "0123456789abcdef");
break;
case 'X':
cont += print_base16_upper_lower(arg, "0123456789ABCDEF");
break;
default:
cont = -1;
}
return (cont);
}