/*字符串滚动
例:输入abcdef
像左移动3位
输出defabc*/
#include <stdio.h>
#include <string.h>
int main()
{
int i,t,n;
char a[100],b[100];
printf("请输入一串字符串:\n");
gets(a);
printf("向左还是向右移动(1.左 2.右):");
scanf("%d",&i);
printf("移动几位:");
scanf("%d",&n);
t=strlen(a);//把字符串a中的字节个数给t
n=n%t;//减少运行次数,因为当移动次数大于t时会重复之前的操作
if(i!=1) n=t-n;//向右 进不去就是向左
for(i=0;i<t;i++)//i是下标
{
b[i]=a[n++];//将数组a中对应的值给b
if(n==t) n=0;//若下标n到达一定的值时,归零
}
b[t]='\0';//给最后弄个结束标志,让puts可以正常输出
puts(b);
}
视频讲解:
猴哥精讲(字符串的滚动)