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

时间:2024-06-20 23:35:02

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

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

 #include<stdio.h>
#include<string.h>
#define _CRT_SECURE_NO_WARNINGS void Change_str(char* start,char* end,int num)
{
//ABCD
//BACD
while (*end!='\0')
{
*start = *start^*end;
*end = *start^*end;
*start = *start^*end;
++start;
++end;
}
} int main()
{
char str[];
printf("请输入一段字符串:\n");
scanf("%s",&str);
printf("请输入左旋的字符数k:\n");
int k = ;
scanf("%d",&k);
int num = (int)strlen(str);
for (int i = ;i < k;++i)
{
Change_str(str, str + , num);
}
printf("%s\n", str); return ;
}