Преобразование двоичного кода в символы (Си) - C (СИ)
Формулировка задачи:
Добрый день!
Имеется код, переводящий двоичный код в символы, однако работает он только если на вход был дан двоичный код одного символа. Как изменить код так, чтобы прога выводила целые слова и предложения? При этом нельзя включать string.h в исходник.
#include <stdio.h> #include <stdlib.h> #include <ctype.h> int main(void) { char myChar; char in[255]; fgets(in, sizeof(in), stdin); myChar = strtol(in, 0, 2); printf("%c\n", myChar ); }
Решение задачи: «Преобразование двоичного кода в символы (Си)»
textual
Листинг программы
#include <stdio.h> #include <ctype.h> #define DELIM ' ' int main(void) { char *ptr, buf[BUFSIZ], ch[9]; ch[8]='\0'; int i = 0; while( printf("String: ") && fgets(buf, BUFSIZ, stdin) && *buf!='\n') for (ptr=buf, i=0; *ptr; ptr++){ if (i == 8) { printf("%c", (char)strtol(ch, 0, 2)); i = 0; } if (*ptr != DELIM) ch[i++] = *ptr; } return 0; }
Объяснение кода листинга программы
В этом коде происходит преобразование двоичного кода в символы. Вот список шагов, описывающих работу программы:
- Включаются необходимые заголовочные файлы
- Определяется символ-разделитель, в данном случае пробел
- Создаются две переменные: буфер для чтения строки и массив символов
- Последний символ массива устанавливается в символ конца строки
- Инициализируется счётчик для цикла
- В цикле происходит чтение строки из стандартного ввода
- Если строка пустая, то цикл прекращается
- В цикле происходит обработка каждого символа строки
- Если текущий символ является разделителем, то двоичный код преобразуется в символ и выводится на экран
- Если текущий символ не является разделителем, то он добавляется в массив символов
- После обработки строки, программа возвращает 0, что означает успешное завершение работы.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д