晕,是字母为'z',不是字母为'Z',搞死人了。
拜托了
代码如下:
#include <stdio.h>
int main()
{
int k,i=0;
unsigned char buf[100] = {0};
scanf("%d %s",&k,buf);
k = k%26;
while(buf[i] != '\0')
{
if(buf[i] >= 'a' && buf[i] <= 'z')
{
buf[i] = buf[i] + k;
if(buf[i] > 'z')
buf[i] = 'a' + buf[i] - 'z' -1;
}else if (buf[i] >= 'A' && buf[i] <= 'Z')
{
buf[i] = buf[i] + k;
if(buf[i] > 'Z')
buf[i] = 'A' + buf[i] - 'Z' -1;
}
i++;
}
printf("%s",buf);
return 0;
}