summaryrefslogtreecommitdiff
path: root/graphs/piscine/ascii_carousel/rot_x.c
blob: 667106d99557c24866dcb5c9687e8ed0ea15cfe3 (plain)
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
#include <stddef.h>

void rot_x(char *s, int x)
{
    if (s == NULL)
    {
        return;
    }

    if (x < 0)
    {
        x = 26 + x;
    }

    for (size_t i = 0; s[i]; i++)
    {
        if (s[i] >= 'a' && s[i] <= 'z')
        {
            s[i] = ((s[i] - 'a') + x) % 26 + 'a';
        }
        else if (s[i] >= 'A' && s[i] <= 'Z')
        {
            s[i] = ((s[i] - 'A') + x) % 26 + 'A';
        }
    }
}