每天一算法(字符串后移)
#include<stdlib.h>#include<string>#include<iostream>using namespace std;//将字符串中从指针begin处到指针end处进行反转void Reverse(char *begin,char *end){if(NULL == begin || NULL == end)return ;while(begin < end){char x = *begin;*begin = *end;*end = x;begin ++;end --;}}//把字符串前面的n个字符移动到字符串的尾部。void MoveToEnd(char *begin,const int n){if(NULL == begin)return ;int Length = strlen(begin);//字符数组的长度if((n > Length ) || 0 == n)return;else{char *FirstBegin = begin;char *FirstEnd = begin + n - 1;char *SecondBegin = begin +n;char *SecondEnd = begin + Length - 1;Reverse(FirstBegin,FirstEnd);Reverse(SecondBegin,SecondEnd);Reverse(FirstBegin,SecondEnd);}}int main(){char a[] = "abcdef";MoveToEnd(a,2);cout<<a;return 0;}