加密,输入一串由字母组成的明文字符串,输出密文。添加规则:每个字母用它的后面四个字母代替
不知道你这个问题是否已经解决, 如果还没有解决的话:#define ROW 10 //定义数组行列 #define COL 10 void show(int arr[][COL]) { for (int i = 0; i < ROW; i++) { for (int j = 0; j < COL; j++) { printf("%2d ",arr[i][j]); } putchar('\n'); } system("cls"); }
void GameInit()
{
//创建窗口
initgraph(ROW * SIZE, COL * SIZE, SHOWCONSOLE);
//设置随机数种子
srand((unsigned)time(NULL));
//数组初始化为0
for (int i = 0; i < ROW; i++)
{
for (int j = 0; j < COL; j++)
{
map[i][j] = 0;
}
}
//埋雷,用-1表示雷,要10个雷
for (int i = 0; i < MINE;)
{
int r = rand()%ROW;//0-9
int c = rand()%COL;
if (map[r][c] == 0)//不等于雷的时候,就设置为雷 -1
{
map[r][c] = -1;
i++; //每埋雷成功一次,加一次
}
}
//让雷周围的九宫格都加1(雷除外)
for (int i = 0; i < ROW; i++)
{
for (int j = 0; j < COL; j++)
{
if (map[i][j] == -1)//如果是雷
{
for (int m = i - 1; m <= i + 1; m++)
{
for (int n = j - 1; n <= j + 1; n++)
{
//排除雷
if (map[m][n] != -1 && (m >= 0 && m < ROW && n >= 0 && n < COL))
{
map[m][n] ++;
}
}
}
}
}
}
//保存图片
IMAGE img[12];
//加载图片
for (int i = 0; i < 12; i++)
{
char file[20] = "";
sprintf(file, "./image/%d.jpg", i);
loadimage(&img[i], file,SIZE,SIZE);
}
//加密格子
for (int i = 0; i < ROW; i++)
{
for (int j = 0; j < COL; j++)
{
map[i][j] += 20;
}
void GameDraw()
{
//绘图 0 1 2 3 4 5 6 7 8 9 10 11 -1
for (int i = 0; i < ROW; i++)
{
for (int j = 0; j < COL; j++)
{
if (map[i][j] == -1)
{
putimage(j * SIZE, i * SIZE, &img[9]);
}
else if (map[i][j] >= 0 && map[i][j] <= 8)
{
putimage(j * SIZE, i * SIZE, &img[map[i][j]]);
}
else if (map[i][j] >= 19 && map[i][j] <= 28)
{
putimage(j * SIZE, i * SIZE, &img[10]);
}
else if(map[i][j]>30)
{
putimage(j * SIZE, i * SIZE, &img[11]);
}
}
}
}
该回答通过自己思路及引用到GPTᴼᴾᴱᴺᴬᴵ搜索,得到内容具体如下:
以下是一个示例代码,用于将输入的明文字符串加密为密文:
#include <iostream>
#include <string>
using namespace std;
string encrypt(string plaintext) {
string ciphertext = "";
int len = plaintext.length();
for (int i = 0; i < len; i++) {
char c = plaintext[i];
if (isalpha(c)) {
// 将字母转换为大写形式
c = toupper(c);
// 对字母进行加密
c = (c - 'A' + 4) % 26 + 'A';
}
ciphertext += c;
}
return ciphertext;
}
int main() {
string plaintext;
cout << "请输入明文字符串:";
getline(cin, plaintext);
string ciphertext = encrypt(plaintext);
cout << "密文字符串为:" << ciphertext << endl;
return 0;
}
在上面的代码中,encrypt函数接受一个明文字符串作为输入,返回一个密文字符串作为输出。在函数内部,我们使用一个for循环遍历明文字符串中的每个字符,如果字符是一个字母,则将其转换为大写形式。然后,将字母用它的后面四个字母代替,这里使用了一个简单的加密算法,即将字母的ASCII码值减去'A',然后加上4,再对26取模,最后再加上'A',将结果转换回字母形式。最后,将加密后的字符添加到密文字符串中,并返回密文字符串。
在main函数中,我们先读取用户输入的明文字符串,然后调用encrypt函数将明文字符串加密为密文字符串,并输出结果。
如果以上回答对您有所帮助,点击一下采纳该答案~谢谢