Расшифровка в “C++” с помощью массивов

179
06 марта 2018, 04:12

Как осуществить расшифровку текста с данным ключом с помощью массивов? (В "C++" 2-ой месяц)

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

Answer 1

Вот ваша расшифровка:

char text[] = "руинцирекевфекеестфаитапсьмиуслпрым. мфхфтмфофнди";
char src[]  = "афгоепрузв";
char dst[]  = "фгоепрузва";
int main(int argc, const char * argv[])
{
    for(char * c = text; *c; ++c)
    {
        char * s = strchr(dst,*c);
        if (s) *c = src[s-dst];
        cout << *c;
    }
}

Чтоб побыстрее, я

  1. писал в 866 кодировке и не заморачивался с русскими буквами.

  2. руками преобразовал все символы в нижний регистр.

Принцип до смешного прост - если буква длинного текста есть в зашифрованном тексте ("фгоепрузва") - мы меняем ее на соответствующую букву открытого текста; если нет - оставляем букву как есть...

Answer 2

Если в командной строке иероглифы, то скорее всего кодировка командной строки и файла отличаются. Если вы на линукс, то используйте utf-8

READ ALSO
Не выводит данные на jsp страничке

Не выводит данные на jsp страничке

Проблема в отображении person на jsp страницеЕсли оставить только id, то страница отображается и показывает id

204
Как остановить Service, работающий в отдельном потоке?

Как остановить Service, работающий в отдельном потоке?

stopService(new Intent(this, MyServiceclass)) посылаю, onDestroy() вызывается, но сервис продолжает работать

185
Java не видит класс

Java не видит класс

Всем привет, 2 день обучения Java и тут столкнулся с проблемой, компилятор не видит мой класс(пробовал создать дополнительный класс, а в нем...

187