Я делаю простое шифрование.У меня есть функция под названием шифрование (текст строки, строка encryption_key).Он должен заменить текст a на первую букву encryption_key, b на секунду и так далее.Я пытаюсь решить это с помощью значений ASCII.
Я не уверен, что считаю это правильным, но я пробовал что-то вроде этого:
void encryption(std::string text, std::string encryption_key){
for(long unsigned int i=0; i< encryption_key.length();i++){
char letter = encryption_key.at(i);
for(char j = 'a'; j<='z'; j++){
if(text.find(j) != std::string::npos){
text.at(j)= letter;
}
}
std::cout<<"Encrypted text: "<< text<<std::endl;
}
}
Я получаю "terminate" после вызова экземпляра 'std :: out_of_range'what (): basic_string :: at: __n (который равен 101)> = this-> size () (который равен 5) Нажмите, чтобы закрыть это окно ... "
Правильна ли идея, которую я пробуюсначала пройти символы ключа шифрования и заменить символы (az) в тексте?