Форум программистов, компьютерный форум CyberForum.ru

Include rus - C++

Восстановить пароль Регистрация
 
GOD_EVIL
 Аватар для GOD_EVIL
0 / 0 / 0
Регистрация: 10.03.2012
Сообщений: 26
03.04.2013, 00:27     Include rus #1
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
const int N = 66;
const char DosABC[N] =
"*ЎўЈ¤Ґс¦§Ё©Є«¬*®Їабвгдежзийклмноп"  
"ЂЃ‚ѓ„…р†‡€‰Љ‹ЊЌЋЏђ‘’“”•–—˜™љ›њќћџ"; 
const char WinABC[N] =
"абвгдеёжзийклмнопрстуфхцчшщъыьэюя"
"АБВГДЕЁЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯ";
 
std::string rus(std::string input)
 {
 std::string output = "";
 bool Ok;
 for (unsigned i = 0; i < input.length(); i++)
  {
  Ok = false;
  for (int j = 0; j < N; j++)
   if (input[i] == WinABC[j])
    {
    output += DosABC[j];
    Ok = true;
    }
  if (!Ok)
   output += input[i];
  }
 return output;
 }
Объясните этот include, что делает каждая строчка
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
03.04.2013, 00:27     Include rus
Посмотрите здесь:

ошибка в лабе не находит #include<iomanip.h> #include<conio.h> C++
Microsoft Visual Studio 2010 (rus) настройка unicod C++
Microsoft Visual Studio 2010 (rus)по настройке. C++
C++ Какая разница между #include<> и #include""?
C++ Проверка ввода. Символ 'а' (rus)
C++ Работа с файлами в C# с исп. библиотек #include <stdio.h> #include <stdlib.h> #include <math.h> #include <io.h>
Не нумеруются строки в визуал студио 2013(RUS) C++
Чем отличается #include <cstring>, #include <string> и #include <string.h>? C++

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
anmartex
...
 Аватар для anmartex
1700 / 1193 / 494
Регистрация: 12.02.2013
Сообщений: 1,978
03.04.2013, 05:34     Include rus #2
GOD_EVIL, этот велосипед выполняет конвертацию кодировки cp1261 в cp866. Причём очень брутально .
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
const int N = 66; // 33 буквы на каждый из регистров
const char DosABC[N] = "*ЎўЈ¤Ґс¦§Ё©Є«¬*®Їабвгдежзийклмноп" // Кодировка cp866
                       "ЂЃ‚ѓ„…р†‡€‰Љ‹ЊЌЋЏђ‘’“”•–—&#152;™љ›њќћџ";
const char WinABC[N] = "абвгдеёжзийклмнопрстуфхцчшщъыьэюя" // Кодировка cp1251
                       "АБВГДЕЁЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯ";
 
// Входная строка Win (cp1251), выходная Dos(cp866)
std::string rus(std::string input)
{
   std::string output = ""; // Выходная строка для Dos (cp866) кодировки
   bool Ok; // Будет устанавливаться в true если символ является
            // русской буквой, иначе false
   // Перебираем все символы из входной строки
   for (unsigned i = 0; i < input.length(); i++)
   {
      Ok = false;
      // Перебираем все символы из WinABC(cp1251) сравнивая его с текущим
      // Если находим соответствие, то присваиваем выходной строке
      // символ из DosABC(cp866) того же индекса
      for (int j = 0; j < N; j++)
         if (input[i] == WinABC[j])
         {
            output += DosABC[j];
            Ok = true;
         }
      // Если символ не относился у русскому алфавиту, то
      // его просто переписываем в выходную строку
      if (!Ok)
      {
         output += input[i];
      }
   }
   return output;
}
P.S.: проще и правильнее воспользоваться WinAPI функцией BOOL AnsiToOem(LPCSTR, LPSTR)
Yandex
Объявления
03.04.2013, 05:34     Include rus
Ответ Создать тему
Опции темы

Текущее время: 19:54. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru