Untitled
unknown
plain_text
2 years ago
1.2 kB
5
Indexable
#include <stdio.h>
void encode() {
char ch;
while ((ch = getchar()) != '\n' && ch != EOF) {
if (ch >= ' ' && ch <= '~') { // Печатаемые символы ASCII
printf("%02X ", ch); // Вывод в шестнадцатеричном формате
} else {
printf("n/a ");
}
}
}
void decode() {
char ch1, ch2;
while ((ch1 = getchar()) && (ch2 = getchar())) {
if (ch1 == '\n' || ch2 == '\n' || ch1 == EOF || ch2 == EOF) break;
if (ch1 >= '0' && ch1 <= '9') ch1 = ch1 - '0';
else if (ch1 >= 'A' && ch1 <= 'F') ch1 = ch1 - 'A' + 10;
else { printf("n/a "); continue; }
if (ch2 >= '0' && ch2 <= '9') ch2 = ch2 - '0';
else if (ch2 >= 'A' && ch2 <= 'F') ch2 = ch2 - 'A' + 10;
else { printf("n/a "); continue; }
putchar((ch1 << 4) + ch2);
getchar(); // Пропуск пробела
}
}
int main(int argc, char *argv[]) {
if (argc != 2) {
printf("n/a\n");
return 1;
}
if (argv[1][0] == '0') {
encode();
} else if (argv[1][0] == '1') {
decode();
} else {
printf("n/a\n");
return 1;
}
return 0;
}
Editor is loading...
Leave a Comment