866-MS-DOS to 1251-MS-Windows - C (СИ)
Формулировка задачи:
"Программа предназначена для перекодировки текстовых файлов из формата кодовой таблицы 866-MS-DOS в формат кодовой таблицы 1251-MS-Windows и наоборот. Пользователь сам выбирает текстовый файл и направление перекодировки."
Уважаемые обитатели форума, прошу объяснить в общих чертах, как это сделать. Совсем ничего на ум не приходит.
Извините.
Решение задачи: «866-MS-DOS to 1251-MS-Windows»
textual
Листинг программы
char *K866to1251(char *p) { char c, *q=p; if (p==NULL) return NULL; while((c=*p)!='\0') { if (c>=128 && c<176) c+=64; else if (c>=224 && c<240) c+=16; *p = c; p++; } return q; } // ******************* char *K1251to866(char *p) { char c, *q = p; while((c=*p)!='\0') { if (c>=192 && c<240) c-=64; else if (c>=240) c-=16; else if (c==184) c = 'е'; *p = c; p++; } return q; } // ******************
Объяснение кода листинга программы
В представленном коде происходит преобразование символов из одной кодировки в другую.
- Функция
K866to1251
принимает указатель на строку в кодировке 866-MS-DOS и возвращает указатель на преобразованную строку в кодировке 1251-MS-Windows. - Функция
K1251to866
принимает указатель на строку в кодировке 1251-MS-Windows и возвращает указатель на преобразованную строку в кодировке 866-MS-DOS. - Преобразование происходит путем прохода по всем символам строки и изменения их значений в соответствии с правилами преобразования.
- В функции
K866to1251
символы в диапазоне от 128 до 175 (включительно) увеличиваются на 64, а символы в диапазоне от 224 до 239 (включительно) увеличиваются на 16. - В функции
K1251to866
символы в диапазоне от 192 до 239 (включительно) уменьшаются на 64, а символ 240 уменьшается на 16. - Если символ равен 184, то в функции
K1251to866
он заменяется на символ 'е'. - Результат преобразования сохраняется в новой строке, начиная с той же позиции, что и исходная строка.
- В конце функции возвращается указатель на начало преобразованной строки.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д