//实现的功能
//input: abcdefg
// 2
//output: fgabcd
//input: abcdefg
// -2
//output: cdefgab
#include <stdio.h>
int main() {
char a[100], b[100];
int n;
/*
* 输入字符串,保存到a中
*/
printf("Please input your string: ");
scanf("%s", a);
printf("/n");
/*
* 输入移位次数,保存到n中
*/
scanf("%d", &n);
/*
* 获得字符串的长度
*/
int string_length;
for (string_length = 0; a[string_length] != '/0'; ++string_length)
;
/*
* 移位
*/
int i, j;
if (n > 0) {
for (i = string_length + n; i >= n; i--)
a[i] = a[i-n];
for (i = 0; i < n; i++)
a[i] = a[string_length+i];
}
else if (n < 0) {
for (i = string_length; i <=string_length-n; i++)
a[i] = a[i-string_length];
for (i = 0; i <= string_length; i++)
a[i] = a[i-n];
}
else
;
a[string_length] = '/0';
printf("/n%s/n", a);
return 0;
}
#include <stdio.h>
#include <stdlib.h>
- void loopMove(char *pStr,int steps)
- {
- int length=0,i=0;
- char *sub=pStr,*str;
- while (*pStr!='/0')
- {
- length++;
- pStr++;
- }
- pStr--;
- if (steps>length)
- steps=steps-length;
- str=(char *)malloc(steps);
- for (i=0;i<steps;i++)
- str[i]=sub[length-steps+i];
- for (i=0;i<length-steps;i++)
- sub[length-i-1]=sub[length-steps-i-1];
- for (i=0;i<steps;i++)
- sub[i]=str[i];
- }
- int main()
- {
- char a[]="abcdef";
- loopMove(a,7);
- printf("%s/n",a);
- return 0;
- }