关于字符串的问题,求解答。
先说问题,输入一个整数n,然后输入一个字符串,字符串中的每一个小写字符均往后退n位(意思是例如n=2,那么abc就变成cde),下面是我写的代码,不知道错哪里,样例输入
1
hello world.
ifmmp xpsme.
下面是我的代码,求指导。(可能有点乱,麻烦耐心看。)
#include<stdio.h>
#include<string.h>
int main ()
{
int n,i;
char sentence[10001];
while(scanf("%d",&n)!=EOF&&n!=0)
{
getchar();
gets(sentence);
for(i=0;i<strlen(sentence);i++)
{
if(sentence[i]>='a'&&sentence[i]<='z')
{
if(sentence[i]+n>'z' && (n-(('z'-sentence[i])+1))>=26)
sentence[i]=('a'+((n-(('z'-sentence[i])+1))%26));//这是那种要移动很多位的情况
else if(sentence[i]+n>'z' && (n-(('z'-sentence[i])+1))<26)
sentence[i]=('a'+((n-(('z'-sentence[i])+1))));
else
sentence[i]=sentence[i]+n;
}
else
sentence[i]+=0;
}
printf("%s\n",sentence);
}
return 0;
}