凯撒密码code [英] Caesar's Cipher Code

查看:267
本文介绍了凯撒密码code的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

#include <stdio.h>

void caesar (char cipher[], int shift);

int main () {

char cipher[50];
int shift;

  printf("Enter text to be encrypted IN CAPITAL LETTERS ONLY: ");
  scanf("%s", cipher);

  printf("How many shifts do you prefer? 1-10 only: ");
  scanf("%d", &shift);

  caesar (cipher, shift);

  return 0;
}

void caesar (char cipher[], int shift) {
  int i = 0;

  while (cipher[i] != '\0') {
    if ((cipher[i] += shift) >= 65 && (cipher[i] += shift) <= 90) {
      cipher[i] += (shift);
    } else {
      cipher[i] += (shift - 25); 
    }
    i++;
  }
  printf("%s", cipher);
}

我开始得到加密输出,但我怕有什么毛病我的陈述。

例如:


  • 输入:ABCD,1移

  • 输出:DEFG 的&LT; =这实际上是3班

  • Input: ABCD, 1 shift
  • Output: DEFG <= which is actually 3 shifts.

推荐答案

修改

if ((cipher[i] += shift) >= 65 && (cipher[i] += shift) <= 90) ...

if ((cipher[i] + shift) >= 65 && (cipher[i] + shift) <= 90) ...

因为 + = 修改密码[I]

这篇关于凯撒密码code的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆