一、知识点
A的ASCII码是65,Z的ASCII码是90
a的ASCII码是97,z的ASCII码是122
从z到a的反循环,用26求余数
二、题目
1、描述
九键手机键盘上的数字与字母的对应: 1--1, abc--2, def--3, ghi--4, jkl--5, mno--6, pqrs--7, tuv--8 wxyz--9, 0--0,把密码中出现的小写字母都变成九键键盘对应的数字,如:a 变成 2,x 变成 9.
而密码中出现的大写字母则变成小写之后往后移一位,如:X ,先变成小写,再往后移一位,变成了 y ,例外:Z 往后移是 a 。
数字和其它的符号都不做变换。
2、数据范围
输入的字符串长度满足 1<=n<=100
3、输入
输入100个密码,长度不超过100个字符
4、输出
输出密码变换后的字符
三、自己写的代码
#include<stdio.h>
int main() {int i = 0;char line[101];scanf("%s", line);while (line[i] != '\0') {if (line[i] >= 'a' && line[i] <= 'z') {if (line[i] == 'a' || line[i] == 'b' || line[i] == 'c') {line[i] = '2';} else if (line[i] == 'd' || line[i] == 'e' || line[i] == 'f') {line[i] = '3';} else if (line[i] == 'g' || line[i] == 'h' || line[i] == 'i') {line[i] = '4';} else if (line[i] == 'j' || line[i] == 'k' || line[i] == 'l') {line[i] = '5';} else if (line[i] == 'm' || line[i] == 'n' || line[i] == 'o') {line[i] = '6';} else if (line[i] == 'p' || line[i] == 'q' || line[i] == 'r' ||line[i] == 's') {line[i] = '7';} else if (line[i] == 't' || line[i] == 'u' || line[i] == 'v') {line[i] = '8';} else if (line[i] == 'w' || line[i] == 'x' || line[i] == 'y' ||line[i] == 'z') {line[i] = '9';}} else if (line[i] >= 'A' && line[i] <= 'Z') {line[i] = 'a' + (line[i] + 32 - 'a' + 1) % 26;} else {}i++;}printf("%s\n", line);return 0;
}