Untitled
unknown
plain_text
a year ago
1.5 kB
3
Indexable
#include <stdio.h> // Функция для вывода сообщения об ошибке void printError() { printf("n/a\n"); } // Функция кодирования void encode() { int c; while ((c = getchar()) && c != '\n' && c != EOF) { if (c == ' ') { printf(" "); } else { printf("%02X ", c); } } } // Функция декодирования void decode() { int c1, c2; while ((c1 = getchar()) && c1 != '\n' && c1 != EOF) { if (c1 == ' ') { // Пропускаем пробелы между кодами printf(" "); continue; } c2 = getchar(); if (c1 >= '0' && c1 <= '9') c1 = c1 - '0'; else if (c1 >= 'A' && c1 <= 'F') c1 = c1 - 'A' + 10; else if (c1 >= 'a' && c1 <= 'f') c1 = c1 - 'a' + 10; else { printError(); return; } if (c2 >= '0' && c2 <= '9') c2 = c2 - '0'; else if (c2 >= 'A' && c2 <= 'F') c2 = c2 - 'A' + 10; else if (c2 >= 'a' && c2 <= 'f') c2 = c2 - 'a' + 10; else { printError(); return; } printf("%c ", (c1 << 4) | c2); } } int main(int argc, char *argv[]) { if (argc != 2) { printError(); return 1; } if (argv[1][0] == '0') { encode(); } else if (argv[1][0] == '1') { decode(); } else { printError(); return 1; } return 0; }
Editor is loading...
Leave a Comment