|
发表于 2011-7-31 20:38:25
|
显示全部楼层
#include<stdio.h>
main()
{
char a;
while( ( a=getchar() ) !=EOF ) //输入不等于结束符(Ctrl+Z)时,进行循环
{
if( (a >= 'A'&& a <= 'Z') || ( a >= 'a' && a <='z') ) //输入的字母在大写字母与小写字母之间
{
if((a >= 'A'&& a <= 'Z') && ( a+4> 'Z') ) //输入字母在大写字母之间,并且如果超过最后一个字母Z的话
{
printf("%c", (a-'A'+4)%26+'A'); // a-'A'得到输入字母在字母表中的序号,(假设A的序号为0,Z的序号为25),a-'A'+4得到输入字母
//后面第四个的序号,(a-'A'+4)%26,相当于( (a+1)-'A'+3 ),这样,使26变为0,Z的序号就转为为0,
//所以结果就为3,由于A的序号从0开始,所以3就相当于Z字母后的第四个字母,
//然后再加上'A',就得到Z后面第四个字母了
}
else if( ( a >= 'a' && a <='z') && (a+4 > 'z') ) //输入字母在小写字母之间,并且如果超过最后一个字母Z的话
{
printf("%c",(a-'a'+4)%26+'a'); //分析同上
}
else
{
printf("%c",a+4);
}
}
else //输入的字母不在大写字母与小写字母之间,就原样输出,比如 !
{
printf("%c",a);
}
}
}
|
|