Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
0 / 0 / 0
Регистрация: 21.12.2016
Сообщений: 4
1

Ошибка с распознаванием строки на русском языке и преобразованием ее

22.12.2016, 09:45. Просмотров 353. Ответов 2
Метки нет (Все метки)


Доброго времени суток! Я новичок в си++, есть такая задача: необходимо реализовать шифр Вернама. Создала консольное приложение: пользователь вводит текст, программа зашифровывает его и дешифрует обратно, выводя оба результата на экран. Проблема в том, что программа корректно работает только с текстом, введенным на латинице. Необходимо, чтобы программа работала на русском. Помогите пожалуйста разобраться. Код программы:
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
35
36
37
38
39
40
41
42
43
44
45
46
#include <cstdlib>
#include <iostream>
#include <fstream>
using  namespace std;
 
int main( int argc, char *argv[] )
{
setlocale(0, "RUS"); 
char data1[50] = { 0 }; 
 
    cout << "Vvedite text:" << endl; //получаем строку для шифрования
   std::cin.getline(data1, 49);
 
int i, len; //Определяем необходимые переменные
len = strlen (data1); // определяем длину строки открытого текста
char *oStr = new char[len]; //объявляем динамический массив указанной длины для открытого текста
char *key = new char[len];  //точно такой же массив объявляем для ключа
char * shStr = new char[len]; //массив-приемник для зашифрованного текста
char * deshStr = new char[len]; //массив-приемник для расшифрованного текста
 
for (i=0; i< len; i++)
    oStr[i] = data1[i]; //помещаем в массив открытый текст
 
// определяем ключ случайным образом
for (i=0; i< len; i++)
        key[i] = (char) rand () %255;
 
//шифрование
cout << "Encrypted:" << endl; //выводим на экран
for (i=0; i< len; i++)
{
        shStr[i] = oStr[i] ^ key[i];
        cout << shStr[i]; 
}
cout << endl;
//расшифровка 
cout << "Decode: " << endl;
for (i=0; i< len; i++)
{
        deshStr[i] = shStr[i] ^ key[i];
        cout << deshStr[i]; 
}
cout << endl; 
    system("pause");
    return 0;
}
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
22.12.2016, 09:45
Ответы с готовыми решениями:

Программа не работает на русском языке. В чем может быть ошибка?
#include&lt;iostream&gt; #include &lt;string&gt; using namespace std; int main() { setlocale (LC_ALL,...

ошибка в русском языке
отец(X,Y):- X является отцом Y. мать(X,Y):- X является матерью Y. родители(X,Y):- X и Y являются...

GeoTiff - примеры ее использования на языке c , желательно на русском языке
Добрый вечер. Дана курсовая с использованием библиотеки GeoTiff. Подскажите где можно прочитать про...

Создать шуточную программу, которая при вводе имени на русском языке выдаст, как оно звучит на японском языке
Такая задача была сегодня на программировании. Создать шуточную программу, которая при вводе имени...

2
nd2
3405 / 2786 / 1251
Регистрация: 29.01.2016
Сообщений: 9,423
22.12.2016, 09:49 2
C++
1
2
3
4
5
6
7
8
#include <windows.h>
 
int main()
{
  SetConsoleCP(1251);
  SetConsoleOutputCP(1251);
  ...
}
В свойствах консоли выбрать шрифт: Lucida Console.
Установка шрифта Lucida Console
1
0 / 0 / 0
Регистрация: 21.12.2016
Сообщений: 4
22.12.2016, 14:54  [ТС] 3
Большое спасибо за ответ, проблема решена!
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
22.12.2016, 14:54

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь или здесь.

В произвольной тексте на русском языке вывести строки, содержащие более 5 букв "о"
Привет всем! Вобщем у меня проблема, есть задачка: В произвольной тексте на русском языке вывести...

На русском языке или языке программирования
Опишите на русском языке или на одном из языков программирования алгоритм получения из...

При работе с распознаванием речи возникает ошибка
Здравствуйте, при работе с распознаванием речи возникает ошибка. Код программы: using System;...

Tutorial на русском языке
Добрый день, форумчане. Ищу тутор по использованию Node + angular + mongo для создания хотя бы...


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.