用C语言加密 字母信息加密字母按字母表,进行对调,大小写不变(a-z,b-y,c-x,…) 急求答案!
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了用C语言加密 字母信息加密字母按字母表,进行对调,大小写不变(a-z,b-y,c-x,…) 急求答案!相关的知识,希望对你有一定的参考价值。
//VC++6.0下进行编译#include <stdio.h>
#define N 25
void jiami(char namea[256])
FILE *fp_jiami,*fp_file2;
char c;
fp_jiami=fopen(namea,"rb");
fp_file2=fopen("file2.plg","wb");
while(EOF!=(fscanf(fp_jiami,"%c",&c)))
if((c>='A'&&c<='Z')||(c>='a'&&c<='z'))
c=c+N;
if (!((c>='A'&&c<='Z')||(c>='a'&&c<='z')))c=c-26;
if(c>='a'&&c<='z')c=c-32;
fprintf(fp_file2,"%c",c);
fclose(fp_file2);
fclose(fp_jiami);
void jiemi(char en_name[256])
FILE *fp_jiemi,*fp_file3;
char c;
fp_jiemi=fopen(en_name,"rb");
fp_file3=fopen("file3.plg","wb");
while(EOF!=(fscanf(fp_jiemi,"%c",&c)))
if((c>='A'&&c<='Z')||(c>='a'&&c<='z'))
c=c-N;
if (!((c>='A'&&c<='Z')||(c>='a'&&c<='z')))c=c+26;
if(c>='A'&&c<='Z')c=c+32;
fprintf(fp_file3,"%c",c);
fclose(fp_file3);
fclose(fp_jiemi);
int main()
char name[256];
int n;
printf("输入你要操作的TXT文本:");
gets(name);
printf("\n请选择需要进行的操作:\n");
printf(" 1:加密 2:解密 \n");
printf("输入你的选择:");
scanf("%d",&n);
switch(n)
case 1:jiami(name);printf("\t加密成功!!\n\n");
break;
case 2:jiemi(name);printf("\t解密成功!!\n\n");
break;
default:printf("输入操作不存在!");
return 0;
参考技术A #include <stdio.h>
#include <string.h>
int main()
char *word;
int len,i;
while(gets(word))
len=strlen(word);
for(i=0;i<len;i++)
if(word[i]>='a'&&word[i]<='z') putchar('a'+'z'-word[i]); //任何字母和它对应的字母的ASIC码之和是不变的
else if(word[i]>='A'&&word[i]<='Z') putchar('A'+'Z'-word[i]);
putchar('\n');
return 0;
本回答被提问者采纳 参考技术B #include <stdio.h>
void encrypt(char* c)
while(*c)
if(*c>='a'&&*c<='z')*c=('a'+'z'-*c);
else if(*c>='A'&&*c<='Z')*c=('A'+'Z'-*c);
c++;
int main()
char a[]="Hello, world!\n";
encrypt(a);
printf("%s",a);
encrypt(a);
printf("%s",a);
参考技术C #include<stdio.h>
void main()
int c;
while(c = getchar())
97<=c&&c<=122?putchar(219-c):65<=c&&c<=90?putchar(155-c):putchar(c);
-------------------------
仅加密字母若输入其他字符不会改变
用C语言编程恺撒密码加密解密程序
恺撒密码的替换方法是通过排列明文和密文字母表,密文字母表示通过将明文字母表向左或向右移动一个固定数目的位置。例如,当偏移量是左移3的时候(解密时的密钥就是3):
明文字母表:ABCDEFGHIJKLMNOPQRSTUVWXYZ
密文字母表:DEFGHIJKLMNOPQRSTUVWXYZABC
使用时,加密者查找明文字母表中需要加密的消息中的每一个字母所在位置,并且写下密文字母表中对应的字母。需要解密的人则根据事先已知的密钥反过来操作,得到原来的明文。例如:
明文:THE QUICK BROWN FOX JUMPS OVER THE LAZY DOG
密文:WKH TXLFN EURZQ IRA MXPSV RYHU WKH ODCB GRJ
用到C语言函数
fopen(“D:\\test\\a1”,”r”) 以只读的方式打开名为a1的文件,a1文件位于D:\test\下。
fopen(“D:\\test\\a1”,”w”) 以写的方式打开名为a1的文件,a1文件位于D:\test\下。
fgets(str,n,fp) 从fp指向的文件读入一个长度为n的字符串,存放到字符数组str中
fputs(str,fp):把str所指向的字符串写到文件指针变量fp所指向的文件中
#define isletter( c ) ( ((c)>='a'&&(c)<='z') || ((c)>='A'&&(c)<='Z') )
void Enc( const char *str, char *out, int key )
int i = 0;
while( str[i] )
if ( isletter( str[i] ) )
out[i] = str[i] + key;
if ( ! isletter( out[i]) )
out[i] -= 26;
else
out[i] = str[i];
i++;
out[i] = 0;
void Denc( const char *str, char *out, int key )
int i=0;
while( str[i] )
if ( isletter( str[i] ) )
out[i] = str[i] - key;
if ( ! isletter( out[i] ) )
out[i] += 26;
else
out[i] = str[i];
i++;
out[i] = 0;
int main()
char out[100], out2[100];
Enc( "THE QUICK BROWn fox jumps over THE LAZY DOG", out, 3 );
printf( "%s\\n", out );
Denc( out, out2, 3 );
printf( "%s\\n", out2 );
追问
不好意思,运行界面怎么不是跟图的一样?
追答未加密文字:THE BUTCHER THE BAKER AND THE CANDLESTICK MAKER。(屠夫、面包师和蜡烛匠)。
关键密钥:BIG BIGBIGB IGB IGBIG BIG BIG BIGBIGBIGBI GBIGB
加密文字:UPK CCZDPKS BNF JGLMX BVJ UPK DITETKTBODS SBSKS
#include<stdio.h>
#include<string.h>
void main()
char str[99],k[10],m[99]="";
unsigned i,j=0,n;
printf("输入要加密的内容\\n");
gets(str);
printf("输入密匙\\n");
gets(k);
n=strlen(k);
for(i=0;i<strlen(str);i++)
if(str[i]==' ')m[i]=' ';
else
m[i]=str[i]+k[j]-'A';
if(m[i]>'Z')m[i]=m[i]-26;
j++;
if(j==n)j=0;
printf("加密后\\n");
puts(m);
追问
不好意思,运行界面怎么不是跟图的一样?
追答以上是关于用C语言加密 字母信息加密字母按字母表,进行对调,大小写不变(a-z,b-y,c-x,…) 急求答案!的主要内容,如果未能解决你的问题,请参考以下文章