13-4.c

来自「水电出版社的《C语言程序设计实训》源代码」· C语言 代码 · 共 41 行

C
41
字号
/*13-4.c*/
#include<stdio.h>
#include<ctype.h>
char mm[54]="QAZWSXEDCRFVTGBYHNUJMIKOLPqwertyuiop asdfghjklzxcvbnm";
char zmb[54]="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNO PQRSTUVWXYZ ";
/* mm 为加密字符串即密钥, zmb 为原字母对照表 */
main(int argc,char *argv[])
{ FILE *fp1,*fp2;
 int ch,flag=0;
 if((toupper(*argv[3])=='E')||(toupper(*argv[3])=='D'))
 flag=1;
 if((argc!=4)||(flag!=1))
 { printf("\007 Error: 参数错误!!\n");
 printf(" 格式:JM1 input output E/D \n");
 exit(0); }
 if((fp1=fopen(argv[1],"r"))==0){
 printf("\007 Error: 不能打开输入文件!\n");
 exit(0); }
 if((fp2=fopen(argv[2],"w"))==0){
 printf("\007 Error: 不能创建输出文件!\n");
 exit(0); }
 do {
 ch=getc(fp1);
 if(ch==EOF)
 break;
 if(isalpha(ch)||ch==' ')
 if(toupper(*argv[3])=='E') /* E: 加密 D:解密 */
 ch=mm[find(zmb,ch)];
 else
 ch=zmb[find(mm,ch)];
 putc(ch,fp2);
 } while(1);
 fclose(fp1);
 fclose(fp2);
}
find(char *s,int ch)
{ register int t;
 for(t=0;t< 54;t++)
 if(ch==s[t])
return t; }

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?