2020蓝桥杯省内模拟赛C++B组第六题

2020蓝桥杯省内模拟赛C++B组第六题

六、凯撒密码
定一个单词,请使用凯撒密码将这个单词加密。
  凯撒密码是一种替换加密的技术,单词中的所有字母都在字母表上向后偏移3位后被替换成密文。即a变为d,
b变为e,…,w变为z,x变为a,y变为b,z变为c。
  例如,lanqiao会变成odqtldr。
输入格式
  输入一行,包含一个单词,单词中只包含小写英文字母。
输出格式
  输出一行,表示加密后的密文。
样例输入
lanqiao
样例输出
odqtldr
评测用例规模与约定
  对于所有评测用例,单词中的字母个数不超过100。

分析:对应的字符ASII码值,a=97,z=122,A=65,Z=90

#include 
#include 
using namespace std;

char trf(char ch){
    if((int)ch >= 97 && (int)ch <= 122){
        // 使用强转,并给定小写字母的范围
        return (char)((int)ch + 3);
    }else{
        // 非字母可直接返回
        return ch;
    }
}
int main() {
    string str = "";
    getline(cin,str);
    int length = str.length(); //获取字符长度
    for(int i = 0; i < length; i++){
        str[i] = trf(str[i]);
    }
    cout << str << endl;
    return 0;
}

2020蓝桥杯省内模拟赛C++B组第六题_第1张图片

你可能感兴趣的:(2020蓝桥杯省内模拟赛C++B组第六题)