题目描述:
给定一个字符串aabcd要求将其左旋两位(即旋转后变成bcdaa)
代码实现:
#include<stdio.h>
#include<stdlib.h>
#include<assert.h>
void Reverse(char* left, char* right)
{
assert(left);
assert(right);
while (left < right)
{
char tmp = *left;
*left = *right;
*right = tmp;
left++;
right--;
}
}
void MoveLeft(char* str, int n) //n表示左旋的位数
{
assert(str);
int len = strlen(str);
if (n > len)
{
n = n % len;
}
Reverse(str, str + n - 1);
Reverse(str + n, str + len - 1);
Reverse(str, str + len - 1);
}
int main()
{
char arr[] = "aabcd";
MoveLeft(arr, 2);
printf("%s\n", arr);
system("pause");
return 0;
}
运行结果:
![](https://img-blog.csdn.net/20170618231002788?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvZG91YmxlX2hhcHBpbmVzcw==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)