C语言实现一个函数左旋字符串中K个字符的方法有哪些
发表于:2025-11-07 作者:千家信息网编辑
千家信息网最后更新 2025年11月07日,这篇文章主要讲解了"C语言实现一个函数左旋字符串中K个字符的方法有哪些",文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习"C语言实现一个函数左旋字符串中K个
千家信息网最后更新 2025年11月07日C语言实现一个函数左旋字符串中K个字符的方法有哪些
这篇文章主要讲解了"C语言实现一个函数左旋字符串中K个字符的方法有哪些",文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习"C语言实现一个函数左旋字符串中K个字符的方法有哪些"吧!
法一、将左旋1次这个动作执行k次
这个方法的思路我来简单介绍一下:
现有1个字符串abcd
我们将a移出来,然后bcd前会空出一个位置

将bcd向前移动一个位置,最后把a放入最后一个位置,即可完成1次左旋

那么1次完成了,对于左旋k次呢?实际上也就是把上述操作再执行k-1次。
代码如下(示例):
#include#include void left_move(char*arr, int k)//arr传过来的是首元素地址,你可以用一个指针去接收{ assert(arr); int i = 0; int len = strlen(arr);//计算arr的长度 for (i = 0;i < k;i++) { int j = 0; char tmp = *arr; for (j = 0;j < len - 1;j++) { arr[j] = arr[j + 1];//arr[j]=*(arr+j) } arr[len - 1] = tmp; }}int main(){ int x = 0; char arr[] = "abcd"; printf("输入你想左旋几个字符:\n"); scanf("%d", &x); left_move(arr, x); printf("%s\n", arr);}
ps:这里多使用一个assert是为了防止函数传过来的是空指针,会进行断言,如果传的是空指针,系统会报错
法二、多次逆序字符串
我们以ABCDEF左旋2次进行举例:
左旋2次也就是把AB移动到CDEF后面,下面看我操作,先将AB、CDEF分为两个组
将两个组分别逆序
最后整体逆序得到最终结果CDEFAB
那么左旋k次也就是把2变成k即可,整体仍然是这3个步骤,非常方便
代码如下(示例):
#include#include void reverse(char*l, char*r)//逆序函数{ assert(l&&r); while (l < r) { char tmp = *l; *l = *r; *r = tmp; l++; r--; }}void left_move(char*arr, int k){ assert(arr); int len = strlen(arr); reverse(arr,arr+k-1);//第一个组逆序 reverse(arr+k,arr+len-1);//第二个组逆序 reverse(arr,arr+len-1);//整体逆序}int main(){ int x = 0; char arr[] = "abcdef"; printf("输入你想左旋几个字符:\n"); scanf("%d", &x); left_move(arr, x); printf("%s\n", arr);}
ps:关于每一次的逆序函数:以abcd举例,就是a和d换位,b和c换位,得到dcba,然后这样的逆序进行三次即可得到所谓的左旋。
感谢各位的阅读,以上就是"C语言实现一个函数左旋字符串中K个字符的方法有哪些"的内容了,经过本文的学习后,相信大家对C语言实现一个函数左旋字符串中K个字符的方法有哪些这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是,小编将为大家推送更多相关知识点的文章,欢迎关注!
左旋
字符
逆序
函数
字符串
方法
语言
也就是
位置
指针
整体
学习
两个
代码
内容
就是
思路
示例
移动
输入
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
闵行区创新软件开发售后服务
绵阳网络技术服务
pmo与软件开发相比怎么样
软件怎么修改数据库
青海省公安厅网络安全
红领巾广播站网络安全
谷氨网络安全就业班测试
服务器上架安装规范
只狼怎么登录游戏服务器
php项目数据库修改吗
网络安全股票市值
服务器IDC运维
组态王有数据库的链接
大专学校计算机网络技术顶岗实习
人工智能数据库心得
php导入数据库网页不显示
腾讯硕士软件开发工资待遇
数据库取消外键1091
互联网展台科技馆设计
投资实用网络技术有限公司
福山区直播软件开发公司
韶关app软件开发外包
数据库datejsp输出
青岛乐杰科技互联网公司
黄平软件开发有限公司
省电的服务器
儿童网络安全知识手抄报
数据库字段特定值唯一约束
共享连接服务器没权限
服务器 处理能力