编辑:这被称为凯撒密码。我试图制作一个主要目的是加密给定(短小写)字符串的程序。它可以通过将所有字母n 个空格向右(加密)或向左(解码)移动来实现。
这是我到目前为止所写的(已编辑)
#include "stdafx.h"
#include <iostream>
#include <string>
using namespace std;
char abc[26] = {'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i',
'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r',
's', 't', 'u', 'v', 'w', 'x', 'y', 'z'};
void code(int n) {
string cadena;
cout << "Introduzca la cadena a cifrar : " << '\n';
cin >> cadena;
for (int i(0); i < cadena.length; i++) {
for (int f(0); f < strlen(abc); f++) {
if (cadena[i] == abc[f]) {
int w;
w = f + n;
if (w > strlen(abc)) {
w -= strlen(abc);
}
cadena[i] = abc[w];
}
}
}
cout << cadena << '\n';
system("pause");
}
void decode(int n) {
string cadena;
cout << "Introduzca la cadena a cifrar : " << '\n';
cin >> cadena;
for (int i(0); i < cadena.length; i++) {
for (int f(0); f < strlen(abc); f++) {
if (cadena[i] == abc[f]) {
int w;
w = f - n;
if (w < 0) {
w--;
w = strlen(abc) - w;
}
cadena[i] = abc[w];
}
}
}
cout << cadena << '\n';
system("pause");
}
int main() {
int n;
cout << "Introduzca el numero del cesar " << '\n';
cin >> n;
cout << "Desea usted cifrar o descifrar?" << '\n';
cout << "Introduzca c para cifrar o d para descifrar" << '\n';
char chos;
cin >> chos;
if (chos == 'c')
code(n);
else
decode(n);
return 0;
}
现在的问题是我得到了一个糟糕的字符串,我什至不知道它是如何形成的。还有一个错误。