C语言学习:PTA 7-65 字符串替换
·
本题要求编写程序,将给定字符串中的大写英文字母按以下对应规则替换:
原字母 对应字母
| A | Z |
| B | Y |
| C | X |
| D | W |
| …… | …… |
| X | C |
| Y | B |
| Z | A |
输入格式:
输入在一行中给出一个不超过80个字符、并以回车结束的字符串。
输出格式:
输出在一行中给出替换完成后的字符串。
思路:
使用一种简单的方法,循环,ascii码之类的。
循环的话没想出很好的办法,要搭配switch语句使用,失去了原本的意义;
感觉ascii码的可行性更高,但之前没有用过。
#include<stdio.h>
int main()
{
char x,y;
x='A';
y=x+1;
printf("%c",y);
return 0;
}

理论存在,实践开始。
A、Z的ascii码分别是65,90;
总共26个大写英文字母,它们都是再ascii码64的基础上加上一定数字。
于是

就有了
64 + [27 - (x - 64)]
(x - 64)是x对应的加值,[27 - (x - 64)]就是对应字母的加值。
#include<stdio.h>
int main()
{
char x;
while ((x = getchar()) != '\n')
{
if (x >= 'A' && x <= 'Z')
{
x = 155 - x;
}
putchar(x);
}
}
也可以使用字符数组,gets()输入,puts()输出,但PTA好像不认识gets。
更多推荐



所有评论(0)