把一个字符串循环左移n个字符
2015-09-09 14:50
190 查看
源码均在XP系统,VS2008下编译并运行
附上源码#include "stdafx.h" #include <string.h> /************************************************************************/ /* 循环左移字符串N位 */ /************************************************************************/ void lefShift(char *source,int length); int _tmain(int argc, _TCHAR* argv[]) { char source[20] = "tangtangtang"; printf("原始字符串:%s\n",source); lefShift(source,2); printf("移动后:%s\n",source); getchar(); } void lefShift(char *source,int length) { char temp[20]; char *tempPointer = temp; // 1.保存移出去的字符串 for (int i = 0; i < length;i++) { *tempPointer = source[i]; tempPointer ++; } *tempPointer = '\0'; // 2.字符串整体左移 printf("左移的字符:%s\n",temp); for (int j = length;j < strlen(source); j++) { source[j-length] = source[j]; } source[strlen(source) - length] = '\0'; printf("循环移动以后的字符串1:%s\n",source); // 3.拼接字符串到原始字符串末尾 char *sourcePointer = source; sourcePointer += strlen(source); for (int i = 0; i < strlen(temp); i++) { *sourcePointer = temp[i]; sourcePointer ++; } *sourcePointer = '\0'; printf("循环移动以后的字符串2:%s\n",source); }
相关文章推荐
- 以单词(而非字符)为最小单元逆置字符串;
- 分享将pdf转换成html格式的技巧
- 计蒜客 第18题:跳跃游戏
- 缓冲区溢出分析第04课:ShellCode的编写
- Android学习——五种布局方式
- 深入浅出UML类图二
- iOS 系统声音和振动
- Win7系统重装后的设置流程表
- Win 10 安装.NET 3.5方法
- Enterprise Architect使用教程
- Spark入门实战系列--5.Hive(下)--Hive实战
- 计蒜客 第17题:X的平方根
- Android 微信支付
- C/s模式与B/S模式
- xml的生成与解析
- JSP---自定义标签库(TagLib)
- Android免Root无侵入AOP框架Dexposed
- android 权限大全
- 华山论剑----常用角点检测与角点匹配方法比较