纪念逝去的岁月——C/C++字符串旋转
2015-03-04 11:58
225 查看
几年前,我还不会写这个
例如:
1、向右→旋转5个字符
输入:HelloWorld
输出:WorldHello
2、向右→旋转3个字符
输入:HelloWorld
输出:rldHelloWo
代码
编译
运行
再见……
例如:
1、向右→旋转5个字符
输入:HelloWorld
输出:WorldHello
2、向右→旋转3个字符
输入:HelloWorld
输出:rldHelloWo
代码
#include <string.h> #include <stdio.h> #include <stdlib.h> int scrollstr(char * p, int iStep) { if(NULL == p) { return -1; } int iLen = strlen(p); iStep %= iLen; if(0 == iStep) { return 0; } char * pt = (char *)malloc(iLen + 1); if(NULL == pt) { return -1; } memset(pt, 0, iLen + 1); int i = 0; for(i = 1; i <= iStep; i++) { pt[iStep - i] = p[iLen - i]; } for(i = 1; i <= iLen - iStep; i++) { p[iLen - i] = p[iLen - i - iStep]; } for(i = 0; i < iStep; i++) { p[i] = pt[i]; } return 0; } int main() { char pX[128] = {"HelloWorld"}; printf("src : [%s]\n", pX); scrollstr(pX, 5); printf("dst : [%s]\n", pX); return 0; }
编译
$ g++ -o scrollstring scrollstring.cpp
运行
$ ./scrollstring src : [HelloWorld] dst : [WorldHello]
再见……
相关文章推荐
- 纪念逝去的岁月——C/C++字符串回文
- 纪念逝去的岁月——C/C++字符串反转
- 纪念逝去的岁月——C/C++冒泡排序
- C++ 求旋转字符串中的最小值
- C++字符串旋转
- (剑指offer)左旋转字符串C++
- 旋转字符串的判断——KMP实现 (C++)
- C++字符串旋转3种方法实现
- c++-字符串旋转
- 纪念逝去的岁月——C/C++排序二叉树
- LintCode C++代码旋转字符串
- 纪念逝去的岁月——C/C++交换排序
- C++判断两个字符串是否互为旋转词
- 左旋转字符串 C++实现
- 纪念逝去的岁月——C/C++选择排序
- LintCode 8.旋转字符串 C++
- (C++)剑指offer-43:左旋转字符串(知识迁移能力)
- 翻转句子中单词的顺序和字符串的旋转操作 c++面试题
- Visual C++.NET中 字符串转换方法[1]
- C++字符串完全指南(2) - 各种字符串类- CRT类