字符串移位:如“abcdefghi”右移2位后变成“cdefghiab”
函数头:
//pStr 是指向以'\0'结尾的字符串指针
//steps 是要求移动的步数 void LoopMove(char *pStr, int steps)
{
//......
}
使用库函数实现:
方法一:
#define MAX_LEN 1000 void LoopMove(char *pStr, int steps)
{
int n=strlen(pStr)-steps;
char tmp[MAX_LEN];
strcpy(tmp,pStr+n);
strcpy(tmp+seps,pStr);
*(tmp+strlen(pStr))='\0';
strcpy(pStr,tmp);
}
方法二:
#define MAX_LEN 1000 void LoopMove(char *pStr, int steps)
{
int n=strlen(pStr)-steps;
char tmp[MAX_LEN];
memcpy(tmp, pStr+n, steps);
memcpy(tmp+steps, pStr, n);
memcpy(pStr, tmp, n+steps)
}
字符串移位:如“abcdefghi”右移2位后变成“cdefghiab”的更多相关文章
- 字符串右移n位(C++实现)
字符串右移n位(C++实现): // ShiftNString.cpp : 定义控制台应用程序的入口点. // #include "stdafx.h" #include <i ...
- 字符串循环右移N位
给一个长度为n的字符串,把这个字符串循环右移N位(0<N<n),要求只用O(1)的额外空间和O(N)时间,有些什么方法 一开始想到的是先保存temp=s[0],在左起第N个移到s[0]的位 ...
- 剑指offer43:左旋转字符串(字符串):对于一个给定的字符序列S,请你把其循环左移K位后的序列输出。
1 题目描述 汇编语言中有一种移位指令叫做循环左移(ROL),现在有个简单的任务,就是用字符串模拟这个指令的运算结果.对于一个给定的字符序列S,请你把其循环左移K位后的序列输出.例如,字符序列S=”a ...
- t2712:字符串移位包含问题
t2712:字符串移位包含问题 总时间限制:1000ms 内存限制:65536kB描述 给定两个字符串s1和s2,要求判定其中一个字符串 是否是另一字符串通过循环移位后的子字符串.例 ...
- 编写一函数用来实现左右循环移位。函数原型为move(value,n);n>0时右移n位,n<0时左移|n|位。
#include<stdio.h> #include<stdlib.h> int main(){ setbuf(stdout,NULL); int move(int,int); ...
- Javascript 右移0位的作用
Javascript 中右移0位可以用来快速去掉小数,关于位移运算的定义: 右移运算是将一个二进制位的操作数按指定移动的位数向右移动,移出位被丢弃,左边移出的空位或者一律补0,或者补符号位. 实际看下 ...
- iOS 身份证最后一位是X,输入17位后自动补全X(转)
非原创,转载自http://blog.csdn.net/l2i2j2/article/details/51542028如果身份证最后一位是X,输入17位后自动补全X// textField代理方法 - ...
- 整数m去掉n位后剩下最大(小)值
题目描述 给定一个正整数(<=255位),从中删去n位后,使得剩下的数字组成的新数最小(大): 思路:从左到右开始扫描,两两比较,如果是前一位比后一位大,则删去前大的一位,直到删完所有的n位: ...
- shell 通过shift获得某位后的入参
有时shell的入参个数不定,想要获得第2位后的参数,作为新的入参调用其他脚本 通常这时候想到的方法是用遍历,例如下面的方法: for (( i=2;i<=$#;i++)) do ...
随机推荐
- 超酷的Android 侧滑(双向滑动菜单)效果
下面看看我们如何使用它,达到我们想要的效果 public class MainActivity extends Activity { /** * 双向滑动菜单布局 */ private SliderM ...
- Android JUnit 入门指南
自动化单元测试可以做许多的事,并帮你节省时间.它也可以被用作快速检验新建工程或进行冒烟测试.始终,单元测试是作为一种有效的.系统的检验应用程序各功能执行的方式.Android SDK支持JUnit的自 ...
- Spring3 MVC请求参数获取的几种方法[转]
Spring3 MVC请求参数获取的几种方法 Spring3 MVC请求参数获取的几种方法 一. 通过@PathVariabl获取路径中的参数 @RequestMapping(value=& ...
- iOS设备的标识---UUID和IDFA
一:1.1 :UDID 简介:UDID的全称是Unique Device Identifier,顾名思义,它就是苹果IOS设备的唯一识别码,它由40个字符的字母和数字组成.在很多需要限制一台设备一个账 ...
- Python type() 函数
描述 type() 函数如果你只有第一个参数则返回对象的类型,三个参数返回新的类型对象.类似isinstance() isinstance() 与 type() 区别: type() 不会认为子类是一 ...
- 博客目录之C#
C# BackgroundWorker的Bug??? C# BeginInvoke和EndInvoke方法 c# 高效的线程安全队列ConcurrentQueue C# ManualResetEven ...
- ThreadLocal 类说明
1 ThreadLocal 不是一个线程,而是保存线程本地化对象的容器.当运行于多线程环境的某个对象使用 ThreadLocal 维护变量时,ThreadLocal 为每一个使用该变量的线程分配一个独 ...
- python 例程的一个好例子
用例程来写一个求平均值的算法 #!/usr/local/python/bin/python3 def FunCore(): total=0 counter=0 average=None tmp=yie ...
- graphite的安装文档
http://www.th7.cn/Program/Python/201603/783804.shtml https://lanjingling.github.io/2016/04/04/graphi ...
- Java:Swing篇,实现JList、JTextArea的自动滚动,实时刷新功能
1. 功能 作为swing的组件,JList与JTextArea是不可以单独实现滚动功能的,需要与JScrollPane结合才可以. 本代码中: JList实现从其它数据源获取数据,然后依次对这些数据 ...