选用一篇英语文章,用其每个字母的行数与列数组成的序列作为该字母的密码。用这个密码对任意给定的一段英文文本进行加密,并且可对任意给定的一段密码进行解密。
如第一行的第一个是单词big,则密文big的密文是为(1,1),(1,2),(1,3)。以此类推将后续文章全部加密。
供参考:
#include <stdio.h>
char encrypt(char ch, int line, int column)
{
return ch ^ line ^ column;
}
int main()
{
int row = 1;
int col = 1;
char ch;
while ((ch = getchar()) != EOF)
{
if (ch == '\n')
{
putchar(ch);
row++;
col = 1;
}
else
{
putchar(encrypt(ch, row, col));
col++;
}
}
return 0;
}
代码如下:
#include
#include
#include
using namespace std;
int main()
{
const int MAX=1000;
int linenum = 0;
char buffer[MAX];
ifstream infile("engdata.txt");
while(infile)
{
linenum++;
infile.getline(buffer,MAX);
for(int i = 0; i < strlen(buffer); i++)
{
printf("(%d,%d),",linenum,i+1);
}
printf("\n");
}
infile.close();
return 0;
}
结果如下:
读取的文件内容如下: