实现一个函数,可以左旋字符串中K个字符

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/Cell_KEY/article/details/51182668

实现一个函数,可以左旋字符串中K个字符

例如 abcdefgh 左旋2个字符  cdefghab

利用3次旋转达到我们的目的 

首先把要旋转的K个字符逆序得到bacdefgh

然后把剩余的字符逆序得到bahgfedc

最后把所有的字符逆序得到我们想要的cdefghab

下面我们用代码来实现

#include<stdio.h>
#include<string.h>
void reverse(char *left,char*right)//逆序
{
	while (left <= right)
	{
		char tmp;
		tmp = *left;
		*left = *right;
		*right = tmp;
		left++, right--;
	}
}
void reverse_left(char *src,int k)
{
	int len = 0;
	len = strlen(src);
	reverse(src, (src + k-1));//要旋转的k个字符逆序
	reverse((src + k ), (src + len-1));//之后的字符逆序
	reverse(src, (src + len-1));//所有的字符逆序
}
int main()
{
	int k = 2;
	char src[] = "abcdefgh";
	reverse_left(src, k);
	printf("%s", src);
	return 0;
}


猜你喜欢

转载自blog.csdn.net/Cell_KEY/article/details/51182668
今日推荐