用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所指向的文件中

#include <stdio.h>

#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 );

追问

不好意思,运行界面怎么不是跟图的一样?

追答
参考技术A 这个我之前写过

未加密文字: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,…) 急求答案!的主要内容,如果未能解决你的问题,请参考以下文章

C语言编程: 文件移位加密与解密。

C语言练习_2用C语言实现凯撒密码加密解密

恺撒加密

C语言从标准输入读取字符,所有非字母字符完全按照输入形式输出,字母字符在输出前加密

Playfair 加密

用C语言2. 编写栅栏密码算法加密、解密编码程序。。求急啊