Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- enum
- {
- SMALL_START = 11,
- BIG_START = 37,
- THIRD_BIT = 3,
- SECOND_BIT = 2,
- MAX_CODE = 63
- };
- int
- main(void)
- {
- int curr = getchar();
- while (curr != EOF) {
- _Bool skip = 0;
- if ('0' <= curr && curr <= '9') {
- curr -= '0' - 1;
- } else if ('a' <= curr && curr <= 'z') {
- curr -= 'a' - SMALL_START;
- } else if ('A' <= curr && curr <= 'Z') {
- curr -= 'A' - BIG_START;
- } else {
- skip = 1;
- }
- if (!skip) {
- curr &= ~(1 << SECOND_BIT);
- curr ^= (1 << THIRD_BIT);
- if (curr == 0) {
- putchar('@');
- } else if (curr == MAX_CODE) {
- putchar('#');
- } else if (BIG_START <= curr) {
- putchar(curr - BIG_START + 'A');
- } else if (SMALL_START <= curr) {
- putchar(curr - SMALL_START + 'a');
- } else {
- putchar(curr - 1 + '0');
- }
- }
- curr = getchar();
- }
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment