把一个一维数据进行旋转,输出结果。
一个看似很抽象的东西,用程序处理的时候,是那么的简单具体!
/*一个具有n个元素的一维向量向左旋转i个位置*/
/*abcdefg -> defgabc*/
/*
**具体的算法:
**1、使用填值得方式来进行
**2、先把后面的值填入
**3、再把前面的值填入
**
*/
/***************Head**************/
typedef unsigned char u8;
void fun(const u8 *source_buff,u8 *destination_buff ,int start_i ,int len);
/***************Head**************/
#include<stdio.h>
#include<string.h>
int main(void)
{
u8 s_buff[6] = {'1','2','3','4','5',0};//为了打印的结果好看,把数组当成字符串输出,故要加'\0'
u8 d_buff[6];
memset(d_buff,'\0',6);
fun(s_buff, d_buff, 3, 5 );
printf("%s\n%s\n",s_buff,d_buff);//打印字符串,是以字符串结尾符'\0'为结束
}
void fun(const u8 *source_buff,u8 *destination_buff ,int start_i ,int len)
{
int i;
for(i = start_i; i < len ;i++)
*destination_buff++ = *(source_buff + i);//先把后面的值填进来
for(i = 0; i < start_i ; i++)
*destination_buff++ = *(source_buff + i);//再把前面的值填进来
}