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

ABCD左旋一个字符得到BCDA
ABCD左旋两个字符得到CDAB

 ABCD
 BACD
 BCAD
 BCDA
 CBDA
 CDBA
 CDAB
 发现规律: 如果左旋一个字符则可以将第一个字符依次与后面的字符交换位置
         如果左旋k个字符则可以将上面的操作进行k次

 1 #include<stdio.h>
 2 #include<string.h>
 3 #define _CRT_SECURE_NO_WARNINGS
 4 
 5 void Change_str(char* start,char* end,int num)
 6 {
 7     //ABCD
 8     //BACD
 9     while (*end!='')
10     {
11         *start = *start^*end;
12         *end = *start^*end;
13         *start = *start^*end;
14         ++start;
15         ++end;
16     }
17 }
18 
19 int main()
20 {
21     char str[100];
22     printf("请输入一段字符串:
");
23     scanf("%s",&str);
24     printf("请输入左旋的字符数k:
");
25     int k = 0;
26     scanf("%d",&k);
27     int num = (int)strlen(str);
28     for (int i = 0;i < k;++i)
29     {
30         Change_str(str, str + 1, num);
31     }
32     printf("%s
", str);
33 
34     return 0;
35 }
原文地址:https://www.cnblogs.com/cuckoo-/p/10382466.html