九度[1105]-字符串的反码
2017-09-12 22:51
218 查看
九度[1105]-字符串的反码
题目描述:一个二进制数,将其每一位取反,称之为这个数的反码。下面我们定义一个字符的反码。如果这是一个小写字符,则它和字符’a’的距离与它的反码和字符’z’的距离相同;如果是一个大写字符,则它和字符’A’的距离与它的反码和字符’Z’的距离相同;如果不是上面两种情况,它的反码就是它自身。
举几个例子,’a’的反码是’z’;’c’的反码是’x’;’W’的反码是’D’;’1’的反码还是’1’;’′的反码还是′’。
一个字符串的反码定义为其所有字符的反码。我们的任务就是计算出给定字符串的反码。
输入
输入每行都是一个字符串,字符串长度不超过 80 个字符。如果输入只有!,表示输入结束,不需要处理。
输出
对于输入的每个字符串,输出其反码,每个数据占一行。
样例输入
Hello
JLU-CCST-2011
!
样例输出
Svool
QOF-XXHG-2011
解题思路:
注意字符串中可能会出现空格,不能用scanf
AC代码:
#include <cstdio> #include <cstring> char input[100]; int main(){ //freopen("C:\\Users\\Administrator\\Desktop\\test.txt", "r", stdin); while(scanf("%s", input) != EOF){ int len = strlen(input), dis; if(len == 1 && input[0] == '!') break; for(int i = 0; i < len; i++){ if('a' <= input[i] && input[i] <= 'z') { dis = input[i] - 'a'; input[i] = 'z' - dis; } else if('A' <= input[i] && input[i] <= 'Z'){ dis = input[i] - 'A'; input[i] = 'Z' - dis; } } for(int i = 0; i < len; i++){ printf("%c", input[i]); } printf("\n"); memset(input, 0, sizeof(input)); } //fclose(stdin); return 0; }
相关文章推荐
- 九度OJ 1105:字符串的反码 (翻译)
- 九度OJ 1105:字符串的反码 (翻译)
- 九度1105 字符串的反码
- 九度 1105 - 字符串处理 - 字符串的反码
- C 字符串的反码(九度OJ 1105)
- 九度oj 题目1105:字符串的反码(string的操作)
- 九度OJ-1105:字符串的反码
- 九度 1105 - 字符串处理 - 字符串的反码
- 九度OJ1105字符串的反码解题报告
- 题目1105:字符串的反码
- 题目1105:字符串的反码
- 题目1105:字符串的反码
- 九度oj-1105-字符串的反码
- 题目1105:字符串的反码
- 题目1105:字符串的反码
- 题目1105:字符串的反码
- 题目1105:字符串的反码
- 题目1105:字符串的反码
- 九度OJ题目1105:字符串的反码
- 九度OJ 题目1066:字符串排序