用c语言来编译把一串密文译成明文,密文以字符@表示结束。译码规则如下:(不可用ctype.h里的库函数)(用字符串解决)
a.如果是字母,转换成字母序列的下一个字母。如A译成B、B译成C。
b.如果是字母Z,译成A。
c.无论是大小写字母都译成小写字母。
d.其他字符一律照原样译出。

用c语言来编译把一串密文译成明文,密文以字符@表示结束。译码规则如下:(不可用ctype.h里的库函数)(用字符串解决)
a.如果是字母,转换成字母序列的下一个字母。如A译成B、B译成C。
b.如果是字母Z,译成A。
c.无论是大小写字母都译成小写字母。
d.其他字符一律照原样译出。

#include <stdio.h>
int main() {
char input[1000]; // 假设输入的密文长度不超过1000
int i = 0;
// 读取输入
while ((input[i] = getchar()) != '@') {
if (input[i] == '\n') { // 忽略换行符
continue;
}
i++;
}
input[i] = '\0'; // 添加字符串结束符
// 解码并输出
for (int j = 0; j < i; j++) {
char c = input[j];
if (c >= 'A' && c <= 'Z') { // 大写字母
putchar(((c - 'A' + 1) % 26) + 'a'); // 转换成下一个字母的小写形式
//若为Z,则c-’A'+1=26,在取模后为0,则可转化为a,下同
} else if (c >= 'a' && c <= 'z') { // 小写字母
putchar(((c - 'a' + 1) % 26) + 'a'); // 转换成下一个字母
} else {
putchar(c); // 其他字符保持不变
}
}
putchar('\n'); // 输出换行符
return 0;
}