(新手求助)大佬们帮忙看看代码是哪里有问题
将一个字符串循环向右移M(M>=0)个字符位置,即将字符串A中的数据由(A0 A1……AN-1)变换为(AN-M …… AN-1 A0 A1……AN-M-1)(N是字符串的长度,最后M个数循环移至最前面的M个位置)。输入
每个输入包含一个测试用例,第1行输入M(M>=0);第2行为输入字符串,长度不超过200。
输出
在一行中输出循环右移M位以后的字符串。
样例1
输入 输出
2
Hello World Here I Come meHello World Here I Co
提示
可以使用scanf读入整数,但不能使用scanf读入字符串,因为字符串中可能包含空格。可以使用fgets读入字符串,但要注意处理上一行末和本行末的的回车换行符。
(感觉自己的解法思路没啥问题,可是就是运行不出结果。)
程序代码:#include <stdio.h>
#include <string.h>
int main(void)
{
int n,len,i,j;
scanf("%s\n",&n);
char str1[199];
fgets(str1,199,stdin);
len = strlen(str1);
str1[len + n]=str1[199];
char b[len+n];
for(i=0;i<len;i++)
{
b[i]=str1[i];
}//遍历数组
for(j=len-2;j>=0;j--)
{
b[j+n]=str1[j];
}//整体往右移n位
while(n--)
{
b[n-1]=b[len-2+n];
}//将最后的n位移到前面去
printf("%s",b);
return 0;
} 






