7-10 字符串循环左移

实验过程分析:本实验是实现数组里面元素的移动,刚开始想的时候不知道选取哪一个来做参考系,因为所有的都在移动,后来我就想也就是前面N个比较特殊,然后我又想前面这N个应该怎么接到最后几个,因为如果把他们弄到最后几个,就会出现覆盖的情况,后来我又想能不能把前面几个元素我们独自拿出来,然后让他们后面的往前面移动,最后再接上去,这样也就避免了数据占用的现象,本来想用# include "string.h",后来用的时候发现它一直报错,从网上面查的时候我查到了原来这里面的两个变量需要指针的知识,我的知识有限,所以就跳过去了,后来又想到了,可以把前面的存储到另一个数组里面,这样的话我们就可以逐步的打印出两个数组,这样的话我们就不用strcat这个函数,然后用printf语句分别打印出来,所以顺序也就是先是先把前N个提取出来,然后再让后面的一个一个覆盖前面的,顺序的话应该是先是N个之后紧接着的元素,让他先移动,然后后面的跟着他一起移动就行了。

# include "stdio.h"
int main(void)
{
 int N,i,now,m=0;
 char a[200];
 char b[100];
 for(i=0;(a[i]=getchar())!='\n';i++);//统计用户输入的数据,并储存在a数组。
 a[i]='\0';//相当于终止字符
 scanf("%d",&N);
 while(N>=i){
 	N=N%i;//当移动的大于字符的时候,我们就可以理解成一个周期,不断减掉自身字符长度,最后就变成了要移动的次数。
 }
 now=i;//统计字符数组内字符个数
 for(i=0;i<N;i++){//将前几个特殊的赋值给另一个数组,并当成一个整体。
  b[i]=a[i];
 }
 b[i]='\0';//结束字符
 for(i=N;m<=now-N;i++,m++){//前几个的值虽然覆盖了,但是已经保存在b数组里面了
  a[i-N]=a[i];
 }
 printf("%s",a);//打印出字符串。
 printf("%s",b);
}

加油加油(ง •_•)ง

能留个赞吗

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值