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

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

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

左旋  ABCD----->  B---->1   C----->1   D----->1  

程式實現

#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<stdlib.h>
void  left_rotate(char * str, int k){
	char temp = 0;
	char* cur = str;
	while (k--){
		//左旋一次
		temp = *str;
		cur = str;
		while (*(cur + 1) != '\0'){
			//每個字元向前挪動一次
			*cur = *(cur + 1);
			cur++;
		}
		*cur = temp;
	}
}
int  main(){
	char str[100];
	int k = 0;
	printf("請輸入要旋轉的字串:\n");
	scanf("%s", &str);
	printf("請輸入要選擇的次數: \n");
	scanf("%d", &k);
	left_rotate(str,k);
	printf("%s\n", str);
	system("pause");
	return 0;
}