C/C++教程

C语言--字符串左旋

本文主要是介绍C语言--字符串左旋,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

C语言–字符串左旋

字符串左旋:假设一个字符串ABCDEF,左旋三个字符变为了DEFABC

这里列出来两种实现方式

  • 方法一:
    在这里插入图片描述
#include <stdio.h>

void string_left_rotate(char* arr, int size, int n)
{
	for (int i = 0; i < n; i++)
	{
		char temp = *arr;
		for (int j = 0; j < size -1; j++)
		{
			*(arr + j) = *(arr + j + 1);
		}
		*(arr + size - 1) = temp;
	}
}
int main()
{
	char arr[20] = "ABCDEF";
	int size = strlen(arr);
	int n = 3;
	string_left_rotate(arr, size, n);
	printf("%s\n", arr);
	return 0;
}
  • 方法二:
    在这里插入图片描述
#include <stdio.h>
#include <string.h>
#include <assert.h>

void reverse(char* left, char* right)
{
	assert(left);
	assert(right);
	while (left < right)
	{
		char temp = *left;
		*left = *right;
		*right = temp;
		left++;
		right--;
	}
}
void string_left_rotate2(char* arr, int size, int n)
{
	reverse(arr, arr + n - 1);
	reverse(arr + n, arr + size - 1);
	reverse(arr, arr + size - 1);
}
int main()
{
	char arr[20] = "ABCDEF";
	int size = strlen(arr);
	int n = 3;
	string_left_rotate2(arr, size, n);
	printf("%s\n", arr);
	return 0;
}
这篇关于C语言--字符串左旋的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!