1. 程式人生 > >.實現一個函式,可以左旋字串中的k個字元。 ABCD左旋一個字元得到BCDA ABCD左旋兩個字元得到CDAB

.實現一個函式,可以左旋字串中的k個字元。 ABCD左旋一個字元得到BCDA ABCD左旋兩個字元得到CDAB

題目:

實現一個函式,可以左旋字串中的k個字元。  ABCD左旋一個字元得到BCDA  ABCD左旋兩個字元得到CDAB 

程式碼:

#define _CRT_SECURE_NO_WARNINGS 1
#include<stdio.h>
#include<stdlib.h>
//左旋字串
void Reverse(char*left, char*right)
{
	while (left < right)
	{
		char tmp = *left;
		*left = *right;
		*right = tmp;
		left++;
		right--;
	}
}

void Reverse_K(char*str, int k)
{
	int len = strlen(str);
	Reverse(str, str+len-1);//整體翻轉
	Reverse(str, str+len-1-k);//再翻轉前半部分
	Reverse(str+len-k,str+len-1);//翻轉後半部分	
}

int main()
{
	char str1[] = "ABCD";
	Reverse_K(str1, 2);
	printf("%s", str1);

	system("pause");
	return 0;
}

執行結果: