一个二进制数,将其每一位取反,称之为这个数的反码。下面我们定义一个字符的反码。如果这是一个小写字符,则它和字符'a’的距离与它的反码和字符'z’的距离相同;如果是一个大写字符,则它和字符'A’的距离与它的反码和字符'Z’的距离相同;如果不是上面两种情况,它的反码就是它自身。 举几个例子,'a’的反码是'z’;'c’的反码是'x’;'W’的反码是'D’;'1’的反码还是'1’;'$'的反码还是'$'。 一个字符串的反码定义为其所有字符的反码。我们的任务就是计算出给定字符串的反码。
输入是一个字符串,字符串长度不超过 80 个字符。
输出其反码
输入:
Hello
复制
输出:
Svool
复制
输入:
JLU-CCST-2011
复制
输出:
QOF-XXHG-2011
解题思路:
一、输入字符串
二、判断每个字符
abcdefghijklmnopqrstuvwxyz
a--z 97--122 219
b--y 98--121 219
c--x 99---120 219
d--w 100---119 219
1==>如果是小写字母,那么它的反码就是219-ascii √ 输出
...
A--Z 65--90 155
B--Y 66--89 155
C--X 67--88 155
D--W 68--87 155
2==>如果是大写字母,那么它的反码就是155-ascii √ 输出
3==>如果是其他字母,那么就是本身输出 输出
三、结束
细节:
不超过80,可以给他稍微开大一点点用来存'\0'之类的东西,开到100不浪费o
循环输入,可以测试多组数据
字符数组输入要不要加取地址符
字符串的长度是多少-->怎么遍历字符串
容器是C++里的,string.h是c语言里的头文件
string str
string类型是容器
怎么通过前面的ascii推后面的ascii? 有什么关系
97怎么推出来122
a的反码是z
b的反码是y
c的反码是x
d的反码是w
ABCDEFGHIJKLMNOPQRSTUVWXYZ
a的ascii码是多少 a---97
A的ascii码是多少 A---65
‘0’--48
代码如下:
#include
#include int main()
{char str[100];while(~scanf("%s",str)){for(int i=0;i='a'&&str[i]<='z')//小写字母{printf("%c",219-str[i]);}//用if还是else if还是都可以 else if(str[i]>='A'&&str[i]<='Z')//大写字母{printf("%c",155-str[i]);}else{printf("%c",str[i]);}}printf("\n");}return 0;
}