forked from Tahani-Saber/printf
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathprint_rot13.c
41 lines (36 loc) · 831 Bytes
/
print_rot13.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
#include "main.h"
/**
* print_rot13 - encodes strings to rot13.
*
* @arg: string to be processed.
* @flag: flags to be considered in printing.
*
* Return: number of character had printed.
*/
int print_rot13(va_list arg, flags_t *flag)
{
char alpha[] = "aAbBcCdDeEfFgGhHiIjJkKlLmMnNoOpPqQrRsStTuUvVwWxXyYzZ";
char rot13[] = "nNoOpPqQrRsStTuUvVwWxXyYzZaAbBcCdDeEfFgGhHiIjJkKlLmM";
int size = sizeof(rot13) / sizeof(*rot13);
int index = 0;
int forIndex;
char *string = va_arg(arg, char *);
(void) flag;
if (string == NULL)
string = "(null)";
while (string[index] != '\0')
{
for (forIndex = 0; forIndex < size; forIndex++)
{
if (string[index] == alpha[forIndex])
{
_putchar(rot13[forIndex]);
break;
}
}
if (forIndex == size)
_putchar(string[index]);
index++;
}
return (index);
}