Untitled
unknown
plain_text
2 years ago
1.3 kB
5
Indexable
#include <stdio.h>
// Функция для вывода сообщения об ошибке
void printError() {
printf("n/a\n");
}
// Функция кодирования
void encode() {
int c;
while ((c = getchar()) && c != '\n' && c != EOF) {
printf("%02X", c);
}
}
// Функция декодирования
void decode() {
int c1, c2;
while ((c1 = getchar()) && c1 != '\n' && c1 != EOF) {
if (c1 == ' ') continue; // Пропуск пробелов
c2 = getchar();
if (c1 >= '0' && c1 <= '9') c1 -= '0';
else if (c1 >= 'A' && c1 <= 'F') c1 -= 'A' - 10;
else if (c1 >= 'a' && c1 <= 'f') c1 -= 'a' - 10;
else {
printError();
return;
}
if (c2 >= '0' && c2 <= '9') c2 -= '0';
else if (c2 >= 'A' && c2 <= 'F') c2 -= 'A' - 10;
else if (c2 >= 'a' && c2 <= 'f') 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