C语言解题||字符串左旋
  TEZNKK3IfmPf 2024年03月29日 96 0

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

例如:

  • ABCD左旋1个字符得到BCDA
  • ABCD左旋2个字符得到CDAB

代码实现:

#define _CRT_SECURE_NO_WARNINGS 1

#include <stdio.h>
#include <assert.h>
#include <string.h>


//除第1个外,全部往前1位,然后原第1个填充至极右
void Left_reverse(char* p, int num)
{
	assert(p);

	int len = strlen(p);
	char tem = 0;
	int i = 0;
	num %= len;

	while (num--)
	{
		tem = *p;//记录极左值
		for (i = 0; i < len - 1; i++)//其它值往前移
		{
			*(p + i) = *(p + i + 1);
		}
		*(p + len - 1) = tem;//极左 -->  极右
	}
}

int main()
{
	int input = 0;
	char str[] = "ABCDE";
	
	Left_reverse(str, 2);

	printf("%s\n", str);

	return 0;
}

运行结果:

C语言解题||字符串左旋

【版权声明】本文内容来自摩杜云社区用户原创、第三方投稿、转载,内容版权归原作者所有。本网站的目的在于传递更多信息,不拥有版权,亦不承担相应法律责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@moduyun.com

  1. 分享:
最后一次编辑于 2024年03月29日 0

暂无评论

推荐阅读
  TEZNKK3IfmPf   2024年03月29日   61   0   0 leetcode字符
  TEZNKK3IfmPf   2024年03月30日   145   0   0 C++c语言
  TEZNKK3IfmPf   2024年04月19日   53   0   0 进程c语言
TEZNKK3IfmPf