Написать программу для кодировки (раскодировки) текста по
принципу «дополнения»: в англоязычном тексте буква a меняется на букву
z, буква b меняется на букву y, буква c меняется на букву x и т.д.
И если не сложно можете подсказать как передать функцию revers в функцию crypt.
#include <iostream>
#include <cstdlib>
#include <cmath>
#include <string.h>
#include <locale>
#include <cctype>
using namespace std;
void abc(char _abc[])
{
int i,j = 0;
for(int i = 97; i < 123;++i)
_abc[j++] = (char)i;
_abc[j] = '\0';
}
void revers(char _abc[])
{
int temp;
int i;
for(i=0;i<strlen(_abc)/2;i++)
{
temp = _abc[i];
_abc[i] = _abc[strlen(_abc)-i-1];
_abc[strlen(_abc)-i-1] = temp;
}
}
void crypt(char *msg,char *_abc,char* _abcReverse,char *cryptArray)
{
int i,j;
int index[strlen(msg)] ;
for(i=0;i<strlen(msg);i++)
{
for(j=0;j < strlen(_abc);j++)
{if (_abc[j] == msg[i]) index[i] = j;}
}
for(i=0;i<strlen(msg);i++) cout << index[i] << " "; // массив заполянется нулями
}
void out(char str[])
{
for(int i = 0; i < strlen(str);i++) cout << str[i] << " ";
}
int main()
{
char _abc[25]="";
char _abcReverse[25] = "";
char msg[] = "abc";
char *crypArray = new char[strlen(msg)];
abc(_abc);
out(_abc);
cout << endl;
strcpy(_abcReverse,_abc); // после копирования масива исходный массив обрезается и в нём остаётся один символ
revers(_abcReverse);
out(_abcReverse);
cout << endl;
crypt(msg,_abc,_abcReverse,crypArray);
cout << endl;
system("pause");
return 0;
}