问题 D: 习题6-12 解密

    科技2024-11-21  18

    问题描述:

    有一行电文,已按如下规律译成密码:

    A-->Z        a-->z

    B-->Y        b-->y

    C-->X        c-->x

    ......          ......

    即第一个字母变成第26个字母,第i个字母变成第(26-i+1)个字母,非字母字符不变。要求根据密码译回原文,并输出。


    解决:

    #include <iostream> #include<cstring> using namespace std; int main() { char a[20]; cin >> a; for (int i = 0; i < strlen(a); i++) { if (a[i] >= 65 && a[i] <= 90) { a[i] = 26 - (a[i] - 65) + 64; } else if (a[i] >= 97 && a[i] <= 122) { a[i] = 26 - (a[i] - 97) + 96; } } cout << a; return 0; }

    要点:

    了解字母A的ASCII码为65,类推至Z为90,a的ASCII码为97,类推至z为122。利用题目给出公式计算完成后,要再转换。字符长度函数strlen要引入头文件cstring
    Processed: 0.010, SQL: 8