字符串替换 — C语言【由特殊到一般,找规律,定公式】

2023年6月8日09:05:30

题目:

本题要求编写程序,将给定字符串中的大写英文字母按以下对应规则替换:

原字母 对应字母
A Z
B Y
C X
D W
X C
Y B
Z A

输入格式:

输入在一行中给出一个不超过80个字符、并以回车结束的字符串。

输出格式:

输出在一行中给出替换完成后的字符串。


思路:

由题意可知,26个大写字母中,可以分为前13个(A-M)和后13个(N-Z)两组,第一组的字母由小到大,第二组的字母由大到小;通过举例,可以发现其中转化规律,如下图:

可得,由小变大公式:rev='Z'-(ch-'A');   由大变小公式:rev='A'+('Z'-ch);

之后再研究发现,这两个公式是等价的,故选择其中一个公式即可满足题目要求,此时不需要再分为两组进行操作。


代码:

#include<stdio.h>
int main(){
    char ch;
    while((ch=getchar())!='\n'){
        if(ch>='A'&&ch<='Z'){
            char rev;
             rev='A'+('Z'-ch);
            printf("%c",rev);
            
        }
        else{                //非大写字母,原样输出
            printf("%c",ch);
        }        
    }
    return 0;
}

结果:


★觉得还不错的话,就点个赞吧☛

  • 作者:W_Day-Day-up!
  • 原文链接:https://blog.csdn.net/m0_66473543/article/details/124717226
    更新时间:2023年6月8日09:05:30 ,共 497 字。