轮换
2015-07-14 22:51
351 查看
串“abcd”每个字符都向右移位,最右的移动到第一个字符的位置,就变为“dabc”。这称为对串进行位移=1的轮换。同理,“abcd”变为:“cdab”则称为位移=2的轮换。
参考代码:
参考代码:
#include <stdio.h> #include <stdlib.h> #include<string.h> void shift(char* s, int n) { char* p; char* q; int len = strlen(s); if(len==0) return; if(n<=0 || n==len) return; char* s2 = (char*)malloc((len+1)*sizeof(char)); p = s; q = s2 + n % len; while(*p) { *q++ = *p++; if(q-s2>=len) { *q = '\0'; q = s2; } } strcpy(s,s2); free(s2); } int main() { char *s=(char*)malloc(10*sizeof(char)); gets(s); shift(s,5); puts(s); return 0; }
相关文章推荐
- 手机玩召回 被逼急的厂商还能出哪些怪招
- jsp页面导出功能,ajax异步导出,友好提示
- 转方阵
- dismissViewController实现多个模态视图跳转
- 【算法34】蓄水池抽样算法 (Reservoir Sampling Algorithm)
- 杭电 hdu 2544 最短路 (最短路径 + Dijkstra算法)
- 用JAX-WS在Tomcat中发布WebService
- 用gradle编译任意结构的Android项目
- leetcode Roman to integer
- CALayer的使用
- as3.0中为TextField的文字添加样式
- jquery.validate使用攻略
- NYOJ166 小珂的数学题(数位dp)
- Xcode编译boost
- Hive命令行常用操作(数据库操作,表操作)
- mysql之视图
- C语言定义数组指针的三种方法
- jQuery Validate验证框架详解
- 车票找零
- 20150714