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;
}
// ******************

Объяснение кода листинга программы

В представленном коде происходит преобразование символов из одной кодировки в другую.

  1. Функция K866to1251 принимает указатель на строку в кодировке 866-MS-DOS и возвращает указатель на преобразованную строку в кодировке 1251-MS-Windows.
  2. Функция K1251to866 принимает указатель на строку в кодировке 1251-MS-Windows и возвращает указатель на преобразованную строку в кодировке 866-MS-DOS.
  3. Преобразование происходит путем прохода по всем символам строки и изменения их значений в соответствии с правилами преобразования.
  4. В функции K866to1251 символы в диапазоне от 128 до 175 (включительно) увеличиваются на 64, а символы в диапазоне от 224 до 239 (включительно) увеличиваются на 16.
  5. В функции K1251to866 символы в диапазоне от 192 до 239 (включительно) уменьшаются на 64, а символ 240 уменьшается на 16.
  6. Если символ равен 184, то в функции K1251to866 он заменяется на символ 'е'.
  7. Результат преобразования сохраняется в новой строке, начиная с той же позиции, что и исходная строка.
  8. В конце функции возвращается указатель на начало преобразованной строки.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

11   голосов , оценка 3.818 из 5