实现字符串右循环移位函数
来源:互联网 发布:网上投票系统 源码 编辑:程序博客网 时间:2024/05/18 12:43
题目:请实现字符串右循环移位函数,比如:“abcdefghi”循环右移2位就是“hiabcdefg”.
函数原型:void RightLoopMove(char *pStr, unsigned short steps)
函数参数说明:
pStr: Point to a ‘\0’ terminated string
steps: The rotate shift numbers
方法一:移位法
#include<stdio.h>#include<assert.h>#include<string.h>void RightLoopMove(char*pStr,unsigned short steps){ int len=0; char tmp=0; int i=0; int j=0; assert(pStr!=NULL); len=strlen(pStr); for(j=0;j<steps;j++) { tmp=*(pStr+len-1); for(i=0;i<len-1;i++) { *(pStr+len-1-i)=*(pStr+len-2-i); } *pStr=tmp; }}int main() { char arr[]="abcddefghi"; RightLoopMove(arr,2); printf("%s\n",arr); return 0;}
方法二:翻转法
#include<stdio.h>#include<assert.h>#include<string.h>void Severse(char*p,char*q)//翻转函数{ char tmp; assert(p); assert(q); while(p<q) { tmp=*p; *p=*q; *q=tmp; p++; q--; }}void RightLoopMove(char *pStr, unsigned short steps){ int len=strlen(pStr); assert(pStr); assert(steps); Severse(pStr,pStr+len-steps-1);//前部分翻转 Severse(pStr+len-steps,pStr+len-1);//后部分翻转 Severse(pStr,pStr+len-1);//整体翻转}int main(){ char arr[]="abcdefghi"; RightLoopMove(arr,2); printf("%s\n",arr); return 0;}
阅读全文
0 0
- 实现字符串右循环移位函数。
- 实现字符串右循环移位函数
- 实现字符串右循环移位函数
- 字符串右循环移位函数
- 字符串右循环移位
- 字符串右循环移位
- 字符串右循环移位
- 字符串右循环移位
- 【C语言】实现字符串右移位函数
- 【C语言】字符串右循环移位
- 【C语言】字符串右循环移位
- 字符窜右循环移位函数
- 循环右移位举例
- (1423)编写函数实现字符串循环右移n位
- 实现字符串右移循环
- 编程实现字符串的循环移位操作
- C语言实现一个循环移位函数
- 实现右旋、左旋循环移位函数
- 六、计算机网络之应用层与路由
- 9.11 12 学到了什么
- C++ 构造函数初始化调用顺序及类函数内部嵌套函数情况
- 学生信息管理系统优化(一)
- Matlab psf2otf与fft2函数的关系
- 实现字符串右循环移位函数
- 大数据(十八)Hive【Hive安装配置(本地derby模式)】
- C++ primer 练习
- C++/C++11中<numeric>的使用
- JSP中涉及到的编码问题
- Java设计模式之组合模式
- 【Selenium异常】NoSuchElementException
- 压缩感知-Gradient Projection for Sparse Reconstruction(梯度投影稀疏重建)
- Memcache的三种Java客户端的对比和选择