C 言語の古典的な質問: 左利きの文字列ローテーション (詳細な説明)

 この質問は比較的単純ですが、これを読んで何か得られるものはありますか?

#include<stdio.h>
#include<string.h>
void leftturn(char arr[],int k)
{
	int len = strlen(arr);
	for (int i = 0;i <k;i++)//左旋k个字符
	{
        //创建临时变量
		char tmp = 0;
		tmp = arr[0];//将数组第一个字符存储到临时变量中
		for (int j = 0;j < len - 1;j++)
		{
			arr[j] = arr[j + 1];//将后面的字符依次移到前面来
		}
		arr[len - 1] = tmp;//将左旋前的第一个字符赋值给最后一个字符
	}
       printf("%s", arr);//%s占位符表示输出字符串
}
int main()
{
	char arr[]="abcd";
	int k = 0;
	scanf("%d", &k);//这里表示左旋的个数
	leftturn(arr,k);
	return 0;
}

おすすめ

転載: blog.csdn.net/zsd2829568515/article/details/134543467