第一种方法:三步旋转法
#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语言实现字符串的右旋相关推荐

  1. 【每天学一点系列~】字符串左/右旋的本质,你真的认清了嘛?

    学透字符串的旋转 Part I.前言 Part II.左/右旋 1.定义 2.共同特点 Part III.初阶解法 解法一:创建新数组 解法二:原地算法(直接法) Part IV.进阶解法 1. 三步 ...

  2. 字符串左旋右旋——三步旋转法和移相法

    题目:实现一个函数,可以左旋字符串中的k个字符. AABCD左旋一个字符得到ABCDA AABCD左旋两个字符得到BCDAA 方法一:三步旋转法 左旋程序思路:首先根据画图得知左旋后的结果,然后在分析 ...

  3. AD 用脚本语言做螺旋线左旋右旋线圈的平面变压器

    这种方法可以把线圈做的匝数提高.

  4. 字符串的左旋右旋问题(C语言实现,三种方法求解)

    字符串左旋右旋问题其实是同理的,下边以左旋为例: 方法一 思路:左旋一次就是将整个字符串向左移一个字符,第一个字符(arr[0])移动到最右侧.这样循环操作左旋次数就是最终左旋结果,如上图所示. 实现 ...

  5. 字符串的左旋右旋问题

    字符串的左旋右旋其实是一个问题,下面只对右旋进行分析. 当一个字符串进行旋转的时候,字符串的大小会决定有效旋转次数.这里面的有效是指,后面的旋转会与前面的旋转相同,所以我们必须要对旋转次数进行去重. ...

  6. 实现字符串左旋和右旋的常见方法

    说起字符串的左旋和右旋问题,想必大家都不陌生,这是一个在初学C语言过程中经常遇到的一个问题,解题的思路可以说很多,每一个人的看待问题的角度都不同,所以就可以得到不同的解题思路.下面我就列举几种方法: ...

  7. 字符串左旋和右旋的常见方法

    1.问题 比如数组,假设以数组的某个索引,或者索引之间,作为旋转中心,对数组进行逆时针(左旋)或顺时针(右旋)的旋转. 类似这样: int[] a={1,2,3,4,5} 左旋3个之后 {4,5,1, ...

  8. C语言左旋和右旋代码

    //这是一个右旋的代码 void Change(int* nums,int left,int right) {     while(left < right)     {         //数 ...

  9. C语言典型题——数组左旋右旋

    数组的左右旋 目录 数组的左右旋: 1.0 : 2.0: 3.0: 1.0 : 思路:找出数学规律,原数组的值赋给另一个代替数组,再打印出来就行了(这样不是真的左右旋).(如果想要arr数组自身左右旋 ...

  10. decimal类型 go_Go 语言程序设计——字符串类型(2)

    格式化布尔值 布尔值使用 %t (真值) 格式指令来输出 例子: package main import ( "fmt" ) func IntForBool (b bool) in ...

最新文章

  1. 1、时间、FHS 学习笔记
  2. ios - Push远程通知代码设置 DeviceToken
  3. python网络爬虫的基本步骤-Python网络爬虫学习手记(1)——爬虫基础
  4. 04Prism WPF 入门实战 - Module
  5. 制作alipay-sdk-java包到本地仓库
  6. 最容易进的大厂工作,百度经典百题
  7. Python绘制带有中文标签和图例的图
  8. springboot入门书籍推荐,电商实战之优惠卷实现(1)
  9. linux复制文件中内容吗,Linux中实现对文件内容的复制。。。
  10. VMware16安装Redhat7 图文教程
  11. php留言板入门教程,一个php留言板实例
  12. 淘宝分布式配置管理服务Diamond
  13. pe显示linux分区文件,找到了linux分区顺序错乱修复方法
  14. 30 个 Python 编程实用技巧
  15. PostgreSql增删改(与mysql差异)
  16. IntelliJ IDEA(2017)安装和破解。
  17. IWAM账号密码不一致引起IIS无法处理ASP文件
  18. 静态网站以及动态网站
  19. 摩托车新手驾驶教程[3]
  20. win10光驱位连接计算机,搞定Win10系统识别不了光驱位机械硬盘的设置方法

热门文章

  1. matlab 自适应波束,(完整word版)自适应波束形成与Matlab程序代码注解
  2. sql中判断日期大小_excel中text函数的方法,日期操作、数值转化,条件判断
  3. mysql所选路径已经存在_MySQL 入门知识(下) | 周末送资料
  4. Guava学习笔记(六):Immutable(不可变)集合
  5. gitignore文件的几种写法,Git忽略文件规则的配置方法
  6. .net导出Excel设置颜色font.ColorIndex 各颜色编号
  7. 算法笔记_面试题_8.零钱兑换
  8. HDU-1994-利息计算
  9. 使用docker私有化部署nuget server-proget
  10. Maven的pom.xml文件详解