給定一個字串實現對字串左移或右移指定長度
阿新 • • 發佈:2019-01-25
給定一個字串S[0,1,...,N-1],要求把S的前k個字元移動到S的尾部,如把字串"abcdef"前面的2個字元'a','b'移動到字串的尾部,得到新字串“cdefab”;即字串迴圈左移k
#include <iostream> #include <stdio.h> using namespace std; void Sift(char* sdata,int size,int snum,int shiftType){ switch (shiftType) { case 0://表示左移 { for(int i=0;i<snum;i++){ char temp=sdata[size-1]; for(int j=size-1;j>0;j--){ sdata[j]=sdata[j-1]; } sdata[0]=temp; } break; } case 1: { for(int i=0;i<snum;i++){ char temp=sdata[0]; for(int j=0;j<size-1;j++){ sdata[j]=sdata[j+1]; } sdata[size-1]=temp; } break; } } } int main(int argc,char* argv[]){ char testData[]={"JulyEdu"}; printf("%s\n",testData); Sift(testData,7,2,0); printf("左移%s\n",testData); char testData1[]={"JulyEdu"}; printf("%s\n",testData1); Sift(testData1,7,2,1); printf("右移%s\n",testData1); }