我们可以看到左旋4次又回到字符串原来的样子了,因为这个字符串的长度是4,了解了左旋的规律,那么我们的思路图是不是就有了
图片上就是左旋一次的过程,那我们就尝试写一下代码吧
//字符串左旋
void LeftRound(char* str,int k)
{
int len = strlen(str);
int time = k % len;
int i = 0;//次数
int j = 0;//下标
for (; i < time; i++)
{
char tmp = str[0];//先把首元素放到空碗里
for (j = 0; j < len - 1; j++)//len-1避免越界,反正最后一个我们会把tmp放进去
{
str[j] = str[j + 1];//字符串放前移的过程
}
str[j] = tmp;
}
}
int main()
{
char str[] = "abcdef";
int k = 0;
printf("请输入左旋次数:");
scanf("%d", &k);
LeftRound(str, k);
printf("%s", str);
return 0;
}
有不懂的评论区提问,觉得有用请给一个赞吧