#include<stdio.h>
#include<assert.h>
#include<string.h>
//左旋数组“abcdef”==>“cdefab”
void Reverse(char *begin,char *end)
{
char tmp;
while(begin < end)
{
tmp = *begin;
*begin = *end;
*end = tmp;
begin++;
end--;
}
}
char *Left_Arry(char *str,int num)
{
assert(str != NULL && num > 0);
int len = strlen(str);
if(len > 0 && num < len)
{
char *firstbegin = str;
char *firstend = firstbegin+num-1;
char *secondbegin = firstend+1;
char *secondend = str+len-1;
Reverse(firstbegin,firstend);//前半边逆转
Reverse(secondbegin,secondend);//后半边逆转
Reverse(firstbegin,secondend);//全部逆转
}
return str;
}
int main()
{
char str[] = "abcdef";
printf("%s\n",Left_Arry(str,2));
getchar();
return 0;
}
答案:cdefab