aboutsummaryrefslogtreecommitdiff
path: root/strings.c
blob: a7a6dda3406db4404a0ab0c1b641a876725c374f (plain) (blame)
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
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
#include "jdtalk.h"

char *str_random_case(char *s) {
    size_t len;
    len = strlen(s);
    for (size_t i = 0; i < len; i++) {
        if ((rand() % 100) >= 50) {
            s[i] = (char)toupper(s[i]);
        }
    }
    return s;
}

char *str_hill_case(char *s) {
    size_t len;
    len = strlen(s);
    for (size_t i = 0; i < len; i++) {
        if (i % 2) {
            s[i] = (char)toupper(s[i]);
        }
    }
    return s;
}

char *str_leet(char *s) {
    size_t len;
    static char buf[OUTPUT_SIZE_MAX];
    memset(buf, '\0', sizeof(buf));
    len = strlen(s);
    for (size_t i = 0; i < len; i++) {
        switch (s[i]) {
            case 'a':
            case 'A':
                strcat(buf, "4");
                break;
            case 'b':
            case 'B':
                strcat(buf, "8");
                break;
            case 'c':
            case 'C':
                strcat(buf, "(");
                break;
            case 'd':
            case 'D':
                strcat(buf, ")");
                break;
            case 'e':
            case 'E':
                strcat(buf, "3");
                break;
            case 'f':
            case 'F':
                strcat(buf, "ƒ");
                break;
            case 'g':
            case 'G':
                strcat(buf, "6");
                break;
            case 'h':
            case 'H':
                strcat(buf, "#");
                break;
            case 'i':
            case 'I':
                strcat(buf, "!");
                break;
            case 'j':
            case 'J':
                strcat(buf, "]");
                break;
            case 'k':
            case 'K':
                strcat(buf, "X");
                break;
            case 'l':
            case 'L':
                strcat(buf, "1");
                break;
            case 'm':
            case 'M':
                strcat(buf, "|\\/|");
                break;
            case 'n':
            case 'N':
                strcat(buf, "|\\|");
                break;
            case 'o':
            case 'O':
                strcat(buf, "0");
                break;
            case 'p':
            case 'P':
                strcat(buf, "|*");
                break;
            case 'q':
            case 'Q':
                strcat(buf, "9");
                break;
            case 'r':
            case 'R':
                strcat(buf, "|2");
                break;
            case 's':
            case 'S':
                strcat(buf, "$");
                break;
            case 't':
            case 'T':
                strcat(buf, "7");
                break;
            case 'u':
            case 'U':
                strcat(buf, "|_|");
                break;
            case 'v':
            case 'V':
                strcat(buf, "\\/");
                break;
            case 'w':
            case 'W':
                strcat(buf, "\\/\\/");
                break;
            case 'x':
            case 'X':
                strcat(buf, "><");
                break;
            case 'y':
            case 'Y':
                strcat(buf, "¥");
                break;
            case 'z':
            case 'Z':
                strcat(buf, "2");
                break;
            default:
                buf[strlen(buf)] = s[i];
                break;
        }
    }
    return buf;
}