字符串的加密解密,编辑器没有任何报错 但是不能运行
/*2017.11.26 16.00
字符串的加密与解密:
方式:
加密的方式是 讲字符串中的每个字符加上他在字符串中位置个一个偏移值5.
eg: 以字符串mrsoft;第一个字符m在字符串中的位置为0;那么它对应的秘闻是'm'+0+5;
大体流程:1,使用while语句设置一个无限循环,并声明两个字符数组,用来保存明文和密文 的字符串;
2.在首次循环中要用户输入字符串,将明文加密成密文的操作,然后在根据用户输入的命令字符进行判断,
3,要求1表示加密成新的明文,2表示对刚刚加密的密文进行解密。3表示退出程序。
*/
#include<stdio.h>
#include<string.h>
int main()
{
int a = 1;
int i;
int b = 0;
char m[128] = { "\0" }; //定义一个明文字符数组
char n[128] = { "\0" }; //定义一个密文的字符数组
while (1)
{
if (a ==1) //如果是加密明文
{
printf("请输入要加密的明文;\n"); //输出字符串
scanf_s("%s", m,128); // 获取输入的明文
b = strlen(m);
for (i = 0; i < b; i++) //遍历明文
{
n [i]= m[i] + i + 5; //设置加密字符
}
n[i] = '\0'; //设置字符串结束标记
//输出密文信息
printf("加密后的密文是:%s\n", m);
}
else if (a ==2) //如果输解密字符串
{
b = strlen(m);
for (i = 0; i < b; i++) //遍历密文字符串
{
m[i] = n[i] - i -5; //设置解密字符
}
m[i] = '\0'; //设置字符串结束标记
//输出明文信息
printf("解密后的明文是:%s\n", m);
}
else if (a == 3) //如果是退出系统
{
break; //跳出循环
}
else
{
printf("请输入命令符:\n"); // 输出字符串
}
//输出字符串
printf("输入1加密新的明文,输入2对刚加密的密文进行解密,输入3退出系统:\n");
printf("请输入命令符:\n"); //获取输入的命令字符
scanf_s("%d", a);
}
getchar();
getchar();
return 0; //程序结束
}