使用了《编程珠玑》上的解法。

#include <iostream>
#include <string>
using namespace std;//注意这里使用了XOR进行交换的方法,这种方法不能让一个数和自身交换
void Reverse(string &str, int left, int right){for(; left < right; left++, right--){str[left] = str[left] ^ str[right];str[right] = str[left] ^ str[right];str[left] = str[left] ^ str[right];}
}void ShiftStr(string &str, int offset){int len = str.length();offset = offset>=0 ? offset%len : offset%len + len;Reverse(str, 0, offset-1);Reverse(str, offset, len-1);Reverse(str, 0, len-1);
}int main()
{string str;for (int i = -5; i <= 5; i++){str = "abcdefghijklmn";ShiftStr(str, i);cout<<"Move left "<<i<<" steps : "<<str<<endl;}return 0;
}

EOF

转载于:https://www.cnblogs.com/lihaozy/archive/2012/12/12/2814423.html

将一个string左移N位置相关推荐

  1. string:删除string中指定位置的字符?指定的所有字符?

    使用迭代器删除string中指定位置的字符! string str = "huehfudhfruhgfsfgkhdyfsghydff";string::iterator itr = ...

  2. stoi() 函数----将一个string类型转换为int型

    需要的头文件: #include<iostream> 需要的其他东西: using namespace std; 函数的作用: 将一个字符串string类型转换为int 型 用法格式: s ...

  3. c++string替换指定位置字符_Lua 字符串

    --[[ Lua 字符串 字符串或串(String)是由数字.字母.下划线组成的一串字符 Lua语言中字符串可以使用以下三种方式来表示 ]] -- 单引号的一串字符 -- 双引号的一串字符 -- [[ ...

  4. c++string替换指定位置字符_Excel数据分析:如何替换字符串中的指定字符?

    数据分析预处理中,经常遇到这样的问题:现有字符串中,如何替换指定的部分字符,例如有大量电话号码,现需要将这些号码最后四位替换为****,该如何做呢? 类似的问题和使用场景有很多,如果你的行记录有几千几 ...

  5. 如何将一个string变为string数组

    public static void main(String[] args){ String str = "feilong,fei"; String[] split = str.s ...

  6. java如何接受字符_java中string怎么获取指定位置的字符

    //截取#之前的字符串String str = "sdfs#d";str.substring(0, str.indexOf("#"));// 输出的结果为:sd ...

  7. java string string_深入理解Java:String

    在讲解String之前,我们先了解一下Java的内存结构. 一.Java内存模型 按照官方的说法:Java 虚拟机具有一个堆,堆是运行时数据区域,所有类实例和数组的内存均从此处分配. JVM主要管理两 ...

  8. Java面试宝典系列之基础面试题String、变量、类与对象、集合类、SSH(一)

    作者:egg 邮箱:xtfggef@gmail.com 微博:http://weibo.com/xtfggef 博客:http://blog.csdn.net/zhangerqing(转载请说明出处) ...

  9. 转载:c+string类详解

    C++ string 类详解 </h1><div class="clear"></div><div class="postBod ...

最新文章

  1. 别在 Java 代码里乱打日志了,这才是正确的打日志姿势
  2. Sublime Text3 使用
  3. 关于IB_DESIGNABLE / IBInspectable的那些事
  4. python 列表元素操作 push()和append()的区别
  5. Python基础——数据分析考核(基础版本)
  6. 内核控制Meta标签:让360浏览器默认使用极速模式打开网页(转)
  7. EFCore+Mysql仓储层建设(分页、多字段排序、部分字段更新)
  8. 谈谈HashMap线程不安全的体现
  9. MyEclipes 设置代码自动提示
  10. 安徽省2012年下半年计算机水平考试(二级 c语言程序设计),安徽省计算机等级级考试真题C语言2012年12月.doc...
  11. 状态空间搜索好题UVA10603
  12. 球体重量在线计算机,材料重量计算器
  13. VBA-保存指定工作表为工作簿文件
  14. Linux面试题史上最全总结
  15. 快速搭建基于《搜狗微信》的公众号爬虫---搜狗微信公众号爬虫教程
  16. 鸿蒙四月几号升级啊,华为鸿蒙系统升级时间表 鸿蒙系统第二批升级时间是什么时候...
  17. 高德地图API获取当前位置对应的周边信息
  18. 正态分布最通俗的解释---今天你正太分布了吗?
  19. 2019年java_Java回顾#4 – 2019年令人失望
  20. 同济大学高等数学上册第四章不定积分以及每日一题

热门文章

  1. 都都的第一次自我游戏
  2. 架构师书单 2nd Edition
  3. 抽象类和接口-手机小案例
  4. SQL基础篇---函数及其函数配套使用的关键字
  5. apache和tomcat的区别
  6. activity切换效果
  7. 利用InfoPath实现SharePoint Server 2013列表的级联选择(Cascading Drop Down List)
  8. Binary Tree Level Order Traversal II leetcode java
  9. 【剑指offer】Q38:数字在数组中出现的次数
  10. 自我理解:const char*, char const* and char *const