问题及代码:
/*
*All rights reserved.
*文件名称:test.cpp
*作 者:尚 月
*完成日期:2014年 12 月 27 日
*版本号:V1.0
*
*问题描述:某电报局的电文保密的规律是将每个英文字母变成其后的第4个字母(很原始的那种啦),如A变成E,a变成e。最后四个字母(W,X,Y,Z或w,x,y,z)又变成前4个字母(A,B,C,D或a,b,c,d).非字母字符不变。输入一行字母,要求输出对应的加密后的文字
*输入描述:一行字符串
*程序输出:改变后的字符串
*/
#include <iostream>
#include <cstdio>
using namespace std;
int main()
{
int j=0;
char str[50];
gets(str);
while (str[j]!='\0')
{
if ((str[j]>='A')&&(str[j]<='V'))
str[j]+=4;
else if((str[j]>='a')&&(str[j]<='v'))
str[j]+=4;
else if ((str[j]>='W')&&(str[j]<='Z'))
str[j]-=22;
else if((str[j]>='w')&&(str[j]<='z'))
str[j]=str[j]-22;
j++;
}
puts(str);
return 0;
}
运行结果:
学习总结:
分别考虑前22个字母和后4个字母的可能就可以了。。。