У меня есть два массива алфавита в следующем формате:
const char plain[26] = {'a','b',....'y','z'} // this is the the full alphabet
const char crypt[26] = {'i','d',....'m','x'}; // this is the the alphabet scrambled
Порядок алфавита в обоих массивах может меняться в зависимости от ввода.Это изменение происходит в основной функции.
Цель этого состоит в том, чтобы сопоставить буквы строки со второй, как при шифровании.Я сравниваю символы со значениями массива.Так что это выглядело бы так (упрощенно)
text[3] = 'yes';
changed[3];
if(text[0] == plain[25]){ //would be done under a for loop so 25 would be a changing integer value
changed[0] = [crypt[25];
}
Мой код прекрасно работает под основной функцией.Я хотел упомянуть мою цель, как это, потому что у меня были предыдущие проблемы просто из-за типа массива и форматирования.И поскольку массив перемещен наружу, я, вероятно, снова столкнусь с этими проблемами.
Теперь я хочу сделать массивы глобальными.Фактическое шифрование происходит в функции, которая не принимает массивы в качестве переменной.Но я хочу, чтобы функция имела к ним доступ.
Вот как это выглядит сейчас
const char plain[26];
const char crypt[26];
int maint(void){
const char plain[26] = {'a','b',....'y','z'} \\values get changed here
const char crypt[26] = {'i','d',....'m','x'} \\and here
Хотя это не дает ошибок, я не получаю вывод, я полагаю, что другие функциииспользуют пустой массив вместо измененного (если изменение даже сработало).
Я пробовал разные типы массивов, я считаю, что проблема заключается в инициализации или предоставлении значений массива.
Изменить: чтобы уточнить, два массива могут быть в любом порядке.Текстовый файл будет рандомизировать порядок, который может дать мне его в формате:
b,r
m,o
l,s
...
...
...
В обоих случаях алфавит рандомизирован.Где первый столбец будет соответствовать первому массиву (обычный), второй будет второму массиву (crypt).
Если есть способ прочитать по столбцам и сохранить в формате
plain = 'bml...'; \\whole alphabet randomized
crypt = 'ros...'; \\whole alphabet randomized
Это бы тоже сработало.