22期视频中,求解电文加密问题
题目:用户输入原文或密文,将输入的字母转换到它后面的第四个字母,acsii码加四,如:A装换为E,B转换为F,a转换为e;如果有W,X,Y,Z等,W转换为A,X转换为B,w转换为a。
#include<stdio.h>
#include<math.h>
int main()
{
int k,i,j=0;
int m;
char c;
printf("input some char:\n");
scanf("%c",c);
for(i=0;i<strlen(c);i++)
{
if(((c>'A')&&(c<'Z'))||((c>'a')&&(c<'z')))//输入字符是字母的话
{
if ((c >= 'W'&&c <= 'Z') || c >= 'w'&&c <= 'z')
{ c = c- 22;}//输入wyz就特殊转换
else
{c=c+4;}
}
else{c=c+4;}
printf("%c",c);
}
return 0;
} 本帖最后由 jackz007 于 2019-10-16 16:44 编辑
#include<stdio.h>
#include<string.h>
int main(void)
{
int k ;
char s ;
/* 下面从键盘读取字符串到 s */
printf("input some char:\n") ;
fgets(s , 256 , stdin) ;
s) - 1] = '\0' ;
/* 下面加密 s 到 s */
for(k = 0 ; k < strlen(s) ; k ++) {
s = s ;
if((s >= 'A' && s <= 'Z') || (s >= 'a' && s <= 'z')) {
if((s >= 'W' && s <= 'Z') || (s >= 'w' && s <= 'z')) s -= 22 ;
else s += 4 ;
}
}
s)] = '\0' ;
/* 下面解密 s 到 s */
for(k = 0 ; k < strlen(s) ; k ++) {
s = s ;
if((s >= 'A' && s <= 'Z') || (s >= 'a' && s <= 'z')) {
if((s >= 'A' && s <= 'D') || (s >= 'a' && s <= 'd')) s += 22 ;
else s -= 4 ;
}
}
s)] = '\0' ;
/* 下面循环显示 s~s 的内容 */
for(k = 0 ; k < 3 ; k ++) printf("s[%d] = %s\n" , k , s) ;
}
页:
[1]