|

楼主 |
发表于 2020-5-30 15:27:28
|
显示全部楼层
- #include<stdio.h>
- #include<string.h>
- #include<ctype.h>
- void change1(char *str1, char *str2);
- void change2(char *str, char *str2, char *str3);
- void duizhaobiao(char *str2, char *str3, char *contrast);
- void change3(char *mingwen, char *upper_mingwen);
- void change4(char *upper_mingwen,char *contrast, char *anwen);
- void change5(char *anwen, char *true_anwen, char *mingwen);
- int main()
- {
- char str[]="ABCDEFGHIJKLMNOPQRSTUVWXYZ";
- char str1[50];//原密码
- char str2[50];//去掉空格和重复数字的密码
- char str3[50];//未出现的字母
- char contrast[50];
- char mingwen[50];
- char upper_mingwen[50];
- char anwen[50];
- char true_anwen[50];
- printf("请输入密钥字(key word):");
- gets(str1);
- change1(str1,str2);
- puts(str2);
- change2(str,str2,str3);
- puts(str3);
- duizhaobiao(str2,str3,contrast);
- puts(contrast);
- printf("请输入明文:");
- gets(mingwen);
- change3(mingwen,upper_mingwen);
- puts(upper_mingwen);
- change4(upper_mingwen, contrast, anwen);
- puts(anwen);
- change5(anwen, true_anwen, mingwen);
- printf("正在生成暗文中...\n");
- puts(true_anwen);
- return 0;
- }
- void change1(char *str1, char *str2)
- {
- int str1_length=50;
- int i,j;
- for(i=0;i<str1_length;i++){
- for(j=0;j<str1_length;j++){
- if(str1[i]==str1[j]&&i!=j){
- str1[j]=' ';
- }
- }
- }
- int cnt=0;
- for(i=0;i<str1_length;i++){
- if(str1[i]!=' '){
- str2[cnt]=str1[i];
- cnt++;
- }
-
- }
- str2[cnt]='\0';
- }
- void change2(char *str, char *str2, char *str3)
- {
-
- int i,j;
- int k=0;
- for(i=0;i<27;i++){
- for(j=0;str2[j]!='\0';j++){
- if(str2[j]==str[i]){
- i++;
- }
- }
- str3[k]=str[i]; k++;
- }
- }
- void duizhaobiao(char *str2, char *str3, char *contrast)
- {
- int i,j;
- for(i=0;str2[i]!='\0';i++){
- contrast[i]=str2[i];
- }
- for(j=0;str3[j]!='\0';j++,i++){
- contrast[i]=str3[j];
- }
- str3[i]='\0';
- }
- void change3(char *mingwen, char *upper_mingwen)
- {
- int i,j;
- for(i=0;mingwen[i]!='\0';i++){
- if(mingwen[i]>='a'&&mingwen[i]<='z'){
- upper_mingwen[i]=mingwen[i]-32;
- }else{
- upper_mingwen[i]=mingwen[i];
- }
- }
- }
- void change4(char *upper_mingwen,char *contrast, char *anwen)
- {
- int i,j,k;int t=0;
- for(i=0;upper_mingwen[i]!='\0';i++){
- t=upper_mingwen[i];
- t=t-65;
- anwen[i]=contrast[t];
- }
- anwen[i]='\0';
- }
- void change5(char *anwen, char *true_anwen, char *mingwen)
- {
- int i;
- for(i=0;mingwen[i]!='\0';i++){
- if(mingwen[i]>='a'&&mingwen[i]<='z'){
- true_anwen[i]=tolower(anwen[i]);
- }else{
- true_anwen[i]=anwen[i];
- }
- }
- true_anwen[i]='\0';
- }
复制代码 |
|