对于一个字符串,和字符串中的某一位置,请设计一个算法,将包括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;
}