Добавил:
Upload
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз:
Предмет:
Файл:c++ 2 курс / вариант 13
.txt#include<iostream>
#include<locale>
#include<windows.h>
using namespace std;
int main() {
setlocale(LC_ALL, ".1251"); // русский яз
int maxLen = 0; // макс длина
cout<<"Введите максимальную длину строки: ";
cin>>maxLen;
char *str = new char[maxLen]; // объявляем массив с набором символов
cin>>str; // ввод набора символов
if (strlen(str) <= maxLen) { // если мы ввели символов меньше или столько же сколько максимум идем дальше
maxLen = strlen(str);
cout<<"Введите слово"<<endl;
char *word = new char[maxLen]; //объявляем слово которое будет кодировать
cin>>word;// вводим его
int *wordHash = new int[maxLen];// объявляем массив для хранения ключей символов в слове
int k = 0;
for (int i = 0; i < strlen(word); i++) { // набор символов
bool flag = false; // флаг устанавливает в ложь
for (int j = 0; j < strlen(str); j++) { // слово
if (word[i] == str[j]) {// каждую букву слова ищем в наборе символов если находим устанавливаем флаг в истину
flag = true;
wordHash[k] = j; // как только нашли нужную букву записали ее в ключи массив
cout<<wordHash[k]; // вывод элементов маасива ключей
k++;
}
}
if (!flag) {
cout<<"В слове найдены лишние символы"<<endl;
system("pause");
return 0;
}
}
cout<<endl;
int len = 0;
cout<<"Введите длину ключа"<<endl;
cin>>len;
int *salt = new int[len]; // массив с ключем по которому будем шифровать
cout<<"Введите ключ"<<endl;
for (int i = 0; i < len; i++) // посимпольный ввод чз пробел или инт
cin>>salt[i];
for (int i = 0; i < k; i++) { //шифрование
cout<<(wordHash[i] + salt[i % len]) % 10; // берем каждый ключ из массива ключей и складываем его с
// соответствующим элементом массива ключа для шифрования
}
cout<<endl;
}
else {
cout<<"ERROR"<<endl;
}
system("pause");
return 0;
}