/*************************************************************************
> File Name: 42_LeftRotateString.c
> Author: Juntaran
> Mail: JuntaranMail@gmail.com
> Created Time: 2016年09月04日 星期日 16时31分43秒
************************************************************************/ #include <stdio.h>
#include <string.h> // 反转单词
void ReverseWord(char* left, char* right)
{
if (left== NULL || right==NULL)
return;
while (left < right)
{
char temp = *left;
*left = *right;
*right = temp; left ++;
right --;
}
} void LeftRotateString(char* str, int n)
{
if (str == NULL || n<=)
return str; int length = strlen(str);
// n可能超过字符串长度
n = n % length; // 第一部分
char* FirstStart = str;
char* FirstEnd = str + n - ; // 第二部分
char* SecondStart = str + n;
char* SecondEnd = str + length - ; // 先反转第一部分
ReverseWord(FirstStart, FirstEnd);
// 再反转第二部分
ReverseWord(SecondStart, SecondEnd);
// 整体反转
ReverseWord(FirstStart, SecondEnd);
} int main()
{
char str[] = "abcdefg";
int n = ; LeftRotateString(str, n);
printf("%s\n", str);
}

最新文章

  1. mysql benchmark基准测试
  2. 数据库(Database)
  3. SCALA XML pattern attrbute(属性)
  4. Jetty安装
  5. c与c++中的extern const的区别和联系
  6. Python创建list和按照索引访问list
  7. NDK(19)简单示例:ndk调用java基本方法、数组;使用stl、访问设备
  8. jquery在线引用的地址
  9. URAL1079
  10. load &amp; get 加载方式
  11. [知了堂学习笔记]_JSON数据操作第2讲(JSON的封装与解析)
  12. Asp.NetCore轻松学-使用Supervisor进行托管部署
  13. python类与对象-如何派生内置不可变类型并修其改实例化行为
  14. 复制程序到notepad++编辑器出现乱码的解决方法
  15. SpringBoot处理日期转换问题
  16. python os模块使用笔记(更新)
  17. Spring Cloud(Dalston.SR5)--Feign 声明式REST客户端
  18. HDU 3472 HS BDC (混合图的欧拉路径判断)
  19. C#操作Excel 单元格的格式处理[xyytIT]
  20. Docker 初相见

热门文章

  1. Visual Studio 2012 主题下的代码配色方案
  2. (剑指Offer)面试题36:数组中的逆序对
  3. Flex应用程序如何启动
  4. 5.迪米特法则(Law Of Demeter)
  5. zookeeper的安装和启动
  6. 实用的树形菜单控件tree
  7. Architecture of Device I/O Drivers, Device Driver Design
  8. A few things to remember while coding in Python.
  9. xshell 远程连接Linux
  10. c# 高效的线程安全队列ConcurrentQueue(下) Segment类