对于一个字符串,和字符串中的某一位置,请设计一个算法,将包括i位置在内的左侧部分移动到右边,将右侧部分移动到左边。

A和它的长度n以及特定位置p,请返回旋转后的结果。



测试样例:


"ABCDEFGH",8,4


返回:"FGHABCDE"




fgets(buf,sizeof(s),stdin)

stdin表示标准输入,是一个FILE类型。
fgets(buf,sizeof(s),stdin) 意思就是说从标准输入读入最多s-1个字符,存储到buf中,并在后面添加一个'\0',如果读入的不满s-1个字符,则都存储到buf中,遇到换行符结束,对了提醒楼主,buf要足够大,要大于等于sizeof(s),不然容易造成内存泄露


#include <stdio.h>
#include <string.h>

#define N 100
int main()
{
	char s[N];
	int n;
	int p;
	int i;
	int j;
	char ch;

	printf("Enter string(<=100):");
	fgets(s,N,stdin);
	printf("Enter len:");
	scanf("%d",&n);
	printf("Enter the location move(<=%d):",n-1);
	scanf("%d",&p);

	for(i = 0; i < n-p-1; i++)
	{
		ch = s[n-1];
		for(j = n-1; j >= 1; j--)
		{
			s[j]=s[j-1];
		}
		s[0] = ch;
	}

	printf("the result:%s",s);

    return 0;
}