1.问题描述
从标准输入读取一个字符串,然后对每个字符进行一些变换,最后输出变换后的字符串。变换的规则如下:
- 如果字符是大写字母,那么将它转换为小写字母,然后向右移动3个位置,如果超过了字母表的范围,那么从头开始循环。例如,
A
变成d
,Z
变成c
。 - 如果字符是小写字母,那么将它转换为大写字母,然后向右移动3个位置,如果超过了字母表的范围,那么从头开始循环。例如,
a
变成D
,z
变成C
。 - 如果字符是数字,那么向右移动5个位置,如果超过了数字的范围,那么从头开始循环。例如,
0
变成5
,9
变成4
。 - 如果字符是其他符号,那么不做任何变换,直接输出。
2.源代码
#include <stdio.h>
int main()
{
char ch;
ch=getchar();
while(ch!='\n'){
if(ch>='A' && ch<='Z'){
ch=(ch-'A'+'a')+3;
if(ch>'z'){
ch=ch-26;
}
}
if(ch>='a' && ch<='z'){
ch=(ch-'a'+'A')+3;
if(ch>'Z'){
ch=ch-26;
}
}
if(ch>='0' && ch<='9'){
ch=ch+5;
if(ch>'9'){
ch=ch-10;
}
}
putchar(ch);
ch=getchar();
}
return 0;
}
3.运行示例
4.代码思路
这段代码使用了一个while
循环,来不断地读取和输出字符,直到遇到换行符\n
为止。它使用了getchar
和putchar
函数,来分别从标准输入读取和向标准输出写入一个字符。它使用了if
语句,来判断字符的类型,并根据不同的类型进行不同的变换。它使用了一些算术运算符和关系运算符,来实现字符的转换和循环。