aluoa 发表于 2019-10-16 13:13:54

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:38:19

本帖最后由 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]
查看完整版本: 22期视频中,求解电文加密问题