这不是凯撒移位,凯撒移位是一对一的。楼上的都限制了字符串的大小,显然不符合题意。我写了一个如下:
#include <stdio.h>
int main(void)
{
int ch;
while ((ch=getchar()) != '\n') {
/* 注意使用%是为了处理'x','y','z'(或大写),'x'对应yza */
if (ch >= 'a' && ch <= 'z')
printf("%c%c%c", (ch-'a'+1)%26+'a', (ch-'a'+2)%26+'a',
(ch-'a'+3)%26+'a');
else if (ch >= 'A' && ch <= 'Z')
printf("%c%c%c", (ch-'A'+1)%26+'A', (ch-'A'+2)%26+'A',
(ch-'A'+3)%26+'A');
else
printf("%c", ch);
}
printf("\n");
return 0;
}
|