1、很简单的密码学问题,见代码。
2、注意用fgets读取(因为有空格),并且一定要初始化。
#include<cstdio>
#include<cstring>
#include<cctype>
using namespace std;
char s1[10010],s2[10010],s3[10010];
int main(){
int n,len;
while(scanf("%d",&n)==1){
memset(s1,'\0',sizeof(s1));
memset(s2,'\0',sizeof(s2));
memset(s3,'\0',sizeof(s3));
if(n==0) break;
getchar();
fgets(s1,10010,stdin);
int len1=strlen(s1),len2=0;
len1--;
for(int i=0;i<len1;i++){
if(s1[i]!=' ') s2[len2++]=toupper(s1[i]);
}
int j=0,cnt=1;
for(int i=0;i<len2;i++){
s3[j]=s2[i];
j+=n;
if(j>=len2) j=cnt++;
}
printf("%s\n",s3);
}
return 0;
}