题目链接
题目不难;
代码如下:
#include <stdio.h>
#include <string.h>
#include <ctype.h>
char str[220];
int main()
{
while(gets(str)){//读到换行符前,并将换行符从缓冲区去掉
if(!strcmp(str, "ENDOFINPUT")) break;//读到结束了
else if(!strcmp(str, "START") || !strcmp(str, "END")) continue;//跳过读取start end;
for(int i = 0; str[i]; ++i){
if(isalpha(str[i])) str[i] = ((str[i] - 'A') + 26 - 5) % 26 + 'A';//isalpha判断是否是字母,只对字母操作,+26在-5取余保证了这个ascii码是在大写字母内变动,eg (str[i] - 'A')-5等于-1应该是z,利用+26-5取余保证取到z
}
puts(str);
}
return 0;
}