用C语言实现字符串的右旋
第一种方法:三步旋转法
#include<stdio.h>
#include<string.h>
#include<assert.h>
#include<stdlib.h>void swap(char* left, char* right) //反转两指针间的字符串
{assert(left);assert(right);while (left < right){char tmp = *left;*left = *right;*right = tmp;left++;right--;}
}void server(char* dest, size_t count)
{assert(dest);int len = strlen(dest);swap(dest, dest + len - count - 1); //由“abcdefg”变成“edcbafg”swap(dest + len - count, dest + len - 1); //由“edcbafg”变成“edcbagf”swap(dest, dest + len - 1); //由“edcbagf”变成“fgabcde”
}int main()
{char arr[] = "abcdefg";size_t count = 2;server(arr, count);printf("%s", arr);system("pause");
}
第二种方法:移项法
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include<assert.h> void server(char *str, int len) //移项法
{assert(str);int i = 0;int num = 0;char temp = 0;for (i = 0; i < len; i++){num = strlen(str);num--;temp = str[num];while (num>0){str[num] = str[num - 1];num--;}str[num] = temp;}
}int main()
{char arr[] = "abcdefgh";server(arr, 2);printf("%s\n", arr);system("pause");return 0;
}
仅提供方法,代码大家自己调试,看具体的过程。如有建议,请指点。
用C语言实现字符串的右旋相关推荐
- 【每天学一点系列~】字符串左/右旋的本质,你真的认清了嘛?
学透字符串的旋转 Part I.前言 Part II.左/右旋 1.定义 2.共同特点 Part III.初阶解法 解法一:创建新数组 解法二:原地算法(直接法) Part IV.进阶解法 1. 三步 ...
- 字符串左旋右旋——三步旋转法和移相法
题目:实现一个函数,可以左旋字符串中的k个字符. AABCD左旋一个字符得到ABCDA AABCD左旋两个字符得到BCDAA 方法一:三步旋转法 左旋程序思路:首先根据画图得知左旋后的结果,然后在分析 ...
- AD 用脚本语言做螺旋线左旋右旋线圈的平面变压器
这种方法可以把线圈做的匝数提高.
- 字符串的左旋右旋问题(C语言实现,三种方法求解)
字符串左旋右旋问题其实是同理的,下边以左旋为例: 方法一 思路:左旋一次就是将整个字符串向左移一个字符,第一个字符(arr[0])移动到最右侧.这样循环操作左旋次数就是最终左旋结果,如上图所示. 实现 ...
- 字符串的左旋右旋问题
字符串的左旋右旋其实是一个问题,下面只对右旋进行分析. 当一个字符串进行旋转的时候,字符串的大小会决定有效旋转次数.这里面的有效是指,后面的旋转会与前面的旋转相同,所以我们必须要对旋转次数进行去重. ...
- 实现字符串左旋和右旋的常见方法
说起字符串的左旋和右旋问题,想必大家都不陌生,这是一个在初学C语言过程中经常遇到的一个问题,解题的思路可以说很多,每一个人的看待问题的角度都不同,所以就可以得到不同的解题思路.下面我就列举几种方法: ...
- 字符串左旋和右旋的常见方法
1.问题 比如数组,假设以数组的某个索引,或者索引之间,作为旋转中心,对数组进行逆时针(左旋)或顺时针(右旋)的旋转. 类似这样: int[] a={1,2,3,4,5} 左旋3个之后 {4,5,1, ...
- C语言左旋和右旋代码
//这是一个右旋的代码 void Change(int* nums,int left,int right) { while(left < right) { //数 ...
- C语言典型题——数组左旋右旋
数组的左右旋 目录 数组的左右旋: 1.0 : 2.0: 3.0: 1.0 : 思路:找出数学规律,原数组的值赋给另一个代替数组,再打印出来就行了(这样不是真的左右旋).(如果想要arr数组自身左右旋 ...
- decimal类型 go_Go 语言程序设计——字符串类型(2)
格式化布尔值 布尔值使用 %t (真值) 格式指令来输出 例子: package main import ( "fmt" ) func IntForBool (b bool) in ...
最新文章
- 1、时间、FHS 学习笔记
- ios - Push远程通知代码设置 DeviceToken
- python网络爬虫的基本步骤-Python网络爬虫学习手记(1)——爬虫基础
- 04Prism WPF 入门实战 - Module
- 制作alipay-sdk-java包到本地仓库
- 最容易进的大厂工作,百度经典百题
- Python绘制带有中文标签和图例的图
- springboot入门书籍推荐,电商实战之优惠卷实现(1)
- linux复制文件中内容吗,Linux中实现对文件内容的复制。。。
- VMware16安装Redhat7 图文教程
- php留言板入门教程,一个php留言板实例
- 淘宝分布式配置管理服务Diamond
- pe显示linux分区文件,找到了linux分区顺序错乱修复方法
- 30 个 Python 编程实用技巧
- PostgreSql增删改(与mysql差异)
- IntelliJ IDEA(2017)安装和破解。
- IWAM账号密码不一致引起IIS无法处理ASP文件
- 静态网站以及动态网站
- 摩托车新手驾驶教程[3]
- win10光驱位连接计算机,搞定Win10系统识别不了光驱位机械硬盘的设置方法
热门文章
- matlab 自适应波束,(完整word版)自适应波束形成与Matlab程序代码注解
- sql中判断日期大小_excel中text函数的方法,日期操作、数值转化,条件判断
- mysql所选路径已经存在_MySQL 入门知识(下) | 周末送资料
- Guava学习笔记(六):Immutable(不可变)集合
- gitignore文件的几种写法,Git忽略文件规则的配置方法
- .net导出Excel设置颜色font.ColorIndex 各颜色编号
- 算法笔记_面试题_8.零钱兑换
- HDU-1994-利息计算
- 使用docker私有化部署nuget server-proget
- Maven的pom.xml文件详解