1608张嘉诚 @ 2019-07-28 23:31:03
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
/* run this program using the console pauser or add your own getch, system("pause") or input loop */
int main(int argc, char *argv[]) {
int n,x,s,i;
scanf("%d",&n);
char c[51];
scanf("%s",c);
x=n%26; s=strlen(c);
for(i=0;i<=s-1;i++){
c[i]=c[i]+x;
if(c[i]-'z'>0)
c[i]=c[i]-26;
printf("%c",c[i]);
}
return 0;
}
by 徐燕玲 @ 2019-08-05 16:59:24
有时候c[i]+x会超出ASCII码表的边界值(你可以自己去网上查找ASCII码表最大值),比如说‘z’+25。可以先把所有的字符减去26,处理完后判断是否小于‘a',如果小于再加上26。