A. C語言凱撒加密是一種移位替代加密演算法,即將字母表A-Z向左移位,然後用移位後的字母表替原來的明文得到密文
#include<iostream>
#include<string>
usingnamespacestd;
intmain()
{
stringcode;//儲存初始字元串
stringd_code;//加密後的字元串
inti;
intn;//移位的個數
cout<<"Enterthestring"<<endl;
cin>>code;
cout<<"howmanystepdoyouwanttomove?"<<endl;
cin>>n;
for(i=0;i<code.size();++i)
{
if(int(code[i])>97)
{
if(int(code[i])+n>122)
d_code[i]=int(code[i])+n-26;
else
d_code[i]=int(code[i])+n;
}
elseif(int(code[i])+n>90)
d_code[i]=char(int(code[i])+n-26);
else
d_code[i]=char(int(code[i]+n));
}
for(i=0;i<code.size();++i)
{
cout<<d_code[i];
}
cout<<endl;
cout<<"Code="<<code<<endl;
return0;
}
B. 一個簡單的加密演算法:a加密成z,b加密成y,c加密成x。。。 我是個新手,我的程序哪裡錯了,求原因
switch(c[i]){
for(x1='a';x1<'n';x1=x1+1){
case x1 : y1=x1+(25-2*j);break;
}
default :printf("%c",c[i]);
}
這里有問題吧,switch...case語句中間是不能拆開的
C. c語言 a-z加密問題
假設原來的字元串數組中的元素為ch1,加密後的字元為ch2可以看出加密的過程是比原來的字元多3,可以採用取模運算進行循環,即Z之後可以用同樣的方式計算到A,公式:ch2=ch1%26+3;其他加密計算方式相同
D. c++密碼加密演算法
加密解密是一樣的,都可用以下程序:
#include<stdio.h>
#include<string.h>
#include<ctype.h>
int main()
{
int i=0;
char MingText[1024], MiText[1024];
printf("請輸入明文:");
gets(MingText);
while(MingText[i])
{
if(isupper(MingText[i]))
{
MiText[i]='Z'-(MingText[i]-'A');
}
else if(islower(MingText[i]))
{
MiText[i]='z'-(MingText[i]-'a');
}
else MiText[i]=MingText[i];
i++;
}
MiText[i]=0;
printf("密文為:");
puts(MiText);
return 0;
}
E. 用c語言設計了一個加密演算法:用a代替z,用b代替y,用c代替x,……,用z代替a。
#include <stdio.h>
int main()
{
char s[100],*p;
printf("請輸入字元串 : ");
gets(s);
p = s;
while(*p)
{
if((*p >= 'a') && (*p <= 'z')) /*處理小寫*/
{
*p ='z' - *p + 'a';
}
if((*p >= 'A') && (*p <= 'Z')) /*處理大寫,同理處理數字亦一樣..自己例推*/
{
*p ='Z' - *p + 'A';
}
p++;
}
printf("轉換後的字元串為 : %s\n\n",s);
return 0;
}
F. 字元加密,規則:a變為z,b變為y,c變為x,···,x變為c,y變為b,z變為a
單個字母轉化:
#include<stdio.h>
int main()
{
char a;
while((a=getchar())!=EOF)
{
getchar();
if('A'<=a&&a<='Z')
a='Z'-a+'A';
putchar(a);
putchar('\n');
}
return 0;
}
字元串轉化:
#include<stdio.h>
int main()
{
int i;
char a[1000];
while(gets(a))
{
for(i=0;a[i]!='\0';i++)
if('A'<=a[i]&&a[i]<='Z')
a[i]='Z'-a[i]+'A';
puts(a);
}
return 0;
}