Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.69/13: Рейтинг темы: голосов - 13, средняя оценка - 4.69
0 / 0 / 0
Регистрация: 05.02.2013
Сообщений: 22

Зашифровать текст

25.06.2013, 13:12. Показов 2836. Ответов 10
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
. Чтобы зашифровать текст, записанный с помощью русских букв и знаков препинания, его можно переписать, заменив каждую букву непосредственно следующей за ней по алфавиту (буква «Я» заменяется на «А»). Дан текстовый файл f. Зашифровать данный текст и записать в файл g.
алгоритм решения задачи обработки данных, хранящихся в текстовом файле.
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
25.06.2013, 13:12
Ответы с готовыми решениями:

Зашифровать текст
Чтобы зашифровать текст, записанный с помощью русских букв и знаков препинания, его можно переписать, заменив каждую букву непосредственно...

Зашифровать текст
Здравствуйте ! Помогите,пожалуйста,составить программу,которая бы считывала русский текст из файла "input.txt" и кодировала...

Зашифровать текст С++
Нужно текст взять из текстового документа File.txt, и вывести в текстовый-зашифрованный файл вот что я сделал #include...

10
 Аватар для iv-a
15 / 15 / 8
Регистрация: 25.06.2013
Сообщений: 63
25.06.2013, 14:56
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
#include <iostream>
#include <fstream>
#include <string>
using namespace std;
 
int main()
{
    setlocale(0, "");
    
    ifstream f("f");
    ofstream g("g");
    string line;
 
    if (!f || !g)
    {
        cout << "Error!" << endl;
        system("pause");
        return 1;
    }
 
    while (!f.eof())
    {
        getline(f, line);
        int size = line.size();
        
        for (int i = 0; i < size; i++)
        {
            if (line[i] == 'я') line[i] = 'а';
            else if (line[i] == 'Я') line[i] = 'А';
            else line[i] = line[i] + 1;
        }
 
        g << line;
    }
 
    f.close();
    g.close();
    return 0;
}
0
0 / 0 / 0
Регистрация: 05.02.2013
Сообщений: 22
25.06.2013, 15:21  [ТС]
выводит консоль после операции и в нем написано ERROR.
0
 Аватар для iv-a
15 / 15 / 8
Регистрация: 25.06.2013
Сообщений: 63
25.06.2013, 15:25
Цитата Сообщение от sanya04 Посмотреть сообщение
выводит консоль после операции и в нем написано ERROR.
создайте файл f, положите его в тот же каталог вместе с программой и что-нибудь напишите в нем
0
Эксперт С++
 Аватар для Thinker
4267 / 2241 / 203
Регистрация: 26.08.2011
Сообщений: 3,802
Записей в блоге: 5
25.06.2013, 15:42
все хорошо, только вот маленькие русские буквы в ASCII не стоят подряд

у буквы п код 175, а у р - уже 224
1
 Аватар для iv-a
15 / 15 / 8
Регистрация: 25.06.2013
Сообщений: 63
25.06.2013, 15:42
Цитата Сообщение от Thinker Посмотреть сообщение
все хорошо, только вот русские буквы в ASCII не стоят подряд
только одна буква выходит из этого правила - Ё. все остальные на месте
0
Эксперт С++
 Аватар для Thinker
4267 / 2241 / 203
Регистрация: 26.08.2011
Сообщений: 3,802
Записей в блоге: 5
25.06.2013, 15:44
Цитата Сообщение от iv-a Посмотреть сообщение
только одна буква выходит из этого правила - Ё. все остальные на месте
я про маленькие русские буквы, у них разрыв имеется
0
 Аватар для Olivеr
415 / 411 / 95
Регистрация: 06.10.2011
Сообщений: 832
25.06.2013, 20:30
@Thinker, всё там на месте, кроме ё Ё
C++
1
2
3
4
5
6
7
8
9
10
#include <iostream>
 
int main()
{
    setlocale(LC_CTYPE, "");
    for (int i = 192; i != 256; ++i)
        std::cout << i << ": "
            << static_cast<unsigned char>(i) << std::endl;
    return 0;
}
Миниатюры
Зашифровать текст  
0
Эксперт С++
 Аватар для Thinker
4267 / 2241 / 203
Регистрация: 26.08.2011
Сообщений: 3,802
Записей в блоге: 5
25.06.2013, 21:33
Цитата Сообщение от Olivеr Посмотреть сообщение
@Thinker, всё там на месте, кроме ё Ё
альтернативных кодировок несколько: ISO 8859-5, CP866, 1251, ГОСТ КОИ-8, 10007 и т.д.
Речь шла о СР866. Да, ее почти вытеснили другие кодировки, согласен. увидев алгоритм, как то о ней сразу почему-то подумал.
0
0 / 0 / 0
Регистрация: 05.02.2013
Сообщений: 22
25.06.2013, 23:15  [ТС]
А как написать эту программу с помощью функций??

Добавлено через 1 час 19 минут
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
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
#include "stdafx.h"
#include <iostream>
#include <fstream>
#include <string.h>
#include <stdlib.h>
using namespace std;
 
 
void create_file(char *namef,fstream &f)
{ 
    char st[80],s1[5];
    
    f.open(namef,ios::out);
 
    if (!f.is_open())
    {
        cout<<"ERROR"; 
        exit(1);
    }
 
    if(f.eof())
    {
        f.clear();
        f.seekg(0);
    }
 
    while (cin.get()!='\n') continue;
 
    cout << "Для завершения ввода нажмите * enter" <<endl;
 
    cin.getline(st,80);
 
    while (st[0]!='*')
    {
        f<<st<<endl;
        cin.getline(st,80);
            
    }
 
    f.close();
}
void read_file(char *namef,fstream &f)
{
    char st[80];
 
    f.open(namef,ios::in);
 
    if (!f.is_open())
    {
        cout<<"ERROR"; 
        exit(1);
    }
 
    if(f.eof())
    {
        f.clear();
        f.seekg(0);
    }   
    
    while (!f.eof())
    {
        f.getline(st,80);
        cout<<st<<"("<<strlen(st)<<")"<<endl;
    }
 
    f.close();
}
 
void zamen(char *namef,fstream &f,char *nameg,fstream &g)
{
    
    f.open(namef,ios::in);
    g.open(nameg,ios::binary|ios::out);
    char st[40];
    char *st1;
    st1=new char[40];
    int i=0,k=0,n;
    if (!f.is_open())
    {
        cout<<"ERROR";exit(1);
    }
    if (f.eof())
    {
    f.clear();
    f.seekg(0);
    }
    if(!g.is_open())
    {
    cout<<"ERROR";exit(1);
    }
    if(g.eof())
    {
    g.clear();
    g.seekg(0);
    }
     while (!f.eof())
    {
        f.getline(st,40);
        n=strlen(st);
        delete[] st1;
        st1=new char[n];
        st1[0]='\0';
        k=0;
 
        getline(f, line);
        int size = line.size();
        
        for (int i = 0; i < size; i++)
        {
            if (line[i] == 'я') line[i] = 'а';
            else if (line[i] == 'Я') line[i] = 'А';
            else line[i] = line[i] + 1;
        }
 
        g << line;
    }
      f.close();
    g.close();
}
 
 
 
 
 
void main()\
{
    setlocale(LC_ALL,"RUSSIAN");
    fstream f,g;
    char *namef;
    namef=new char[15];
    char *nameg;
    nameg =new char[15];
    
    cout<<"Enter name of the file ";
    cin>>namef;
    create_file(namef,f);
    read_file(namef,f);
    cout<<"Enter name of the new file ";
    cin>>nameg;
    zamen(namef,f,nameg,g);
    read_file(nameg,g);
}
как исправить функцию zamen c программы которая была предоставлена выше?
Заранее спасибо!
0
Модератор
Эксперт JS
 Аватар для Eva Rosalene
5241 / 2115 / 416
Регистрация: 06.01.2013
Сообщений: 4,846
26.06.2013, 12:10
Вообще функцию замены можно сделать так, но я не уверен про кодировки, синтаксис, да и вообще давно не кодил =D
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
char * zamen(char *in){
 setlocale(0, "");
 char alphabet[]="абвгдеёжзийклмнопрстуфхцчшщьыъэюяАБВГДЕЁЖЗИЙКЛМНОПРСТУФХЦЧШЩЬЫЪЭЮЯ";
 int i=0;
 bool r=false;
 while(in[i] != "\0") i++;
 char *s; s = new char[i];
 for (int n = 0; n < i; n++){
  r = false;
  for (int m = 0; m < 65; m++){
   if (in[n] == alphabet[m]){s[n]=alphabet[m+1]; r = true;}
  }
  if(!r) s[n]=in[n];
 }
 return s;
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
26.06.2013, 12:10
Помогаю со студенческими работами здесь

Зашифровать текст
Зашифровать данное слово, используя таблицу ASCII-кодов: Printer И дешифровать, используя таблицу ASCII-кодов: 43 4F 4D 50 55 54 45 52 ...

зашифровать текст
На C++ как зашифровать текст,чтобы буквы выводились в любом порядке в слове.

Зашифровать и расшифровать текст
Зашифровать и расшифровать текст, находящийся в строкe с именем Fin. Закодированный (расшифрованный)текст сохранить в строку Fout. Для...

Зашифровать текст по ключу
Разработать функцию программиста, которая шифрует строку, заменяя каждый символ другим символом по следующему правилу: к коду первого по...

Текстовый редактор. Зашифровать текст.
подскажите пожалуйста не пойму что надо сделать??? &quot;файл должен храниться в зашифрованном виде: над каждым симво-лом файла произвести...


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

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
Новые блоги и статьи
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
Киев стоит - украинская песня
zorxor 28.01.2026
wfWdiRqdTxc О Господи, Вечный, Ты . . . Я помоги, Бесконечный. . . Я прошу Ты. . . Я погибаю, спаси. . . Я прошу Тебя Вечный. . .
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL3_image
8Observer8 27.01.2026
Содержание блога SDL3_image - это библиотека для загрузки и работы с изображениями. Эта пошаговая инструкция покажет, как загрузить и вывести на экран смартфона картинку с альфа-каналом, то есть с. . .
влияние грибов на сукцессию
anaschu 26.01.2026
Бифуркационные изменения массы гриба происходят тогда, когда мы уменьшаем массу компоста в 10 раз, а скорость прироста биомассы уменьшаем в три раза. Скорость прироста биомассы может уменьшаться за. . .
Воспроизведение звукового файла с помощью SDL3_mixer при касании экрана Android
8Observer8 26.01.2026
Содержание блога SDL3_mixer - это библиотека я для воспроизведения аудио. В отличие от инструкции по добавлению текста код по проигрыванию звука уже содержится в шаблоне примера. Нужно только. . .
Установка Android SDK, NDK, JDK, CMake и т.д.
8Observer8 25.01.2026
Содержание блога Перейдите по ссылке: https:/ / developer. android. com/ studio и в самом низу страницы кликните по архиву "commandlinetools-win-xxxxxx_latest. zip" Извлеките архив и вы увидите. . .
Вывод текста со шрифтом TTF на Android с помощью библиотеки SDL3_ttf
8Observer8 25.01.2026
Содержание блога Если у вас не установлены Android SDK, NDK, JDK, и т. д. то сделайте это по следующей инструкции: Установка Android SDK, NDK, JDK, CMake и т. д. Сборка примера Скачайте. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru