1 //参考书籍:编程之法 2 3 #include4 char* leftRotateString(char *s, int n, int m); 5 int main(int argc, const char * argv[]) { 6 7 char s[] = "abcde"; 8 printf("旋转2位字符串位为%s\n",leftRotateString(s, 5, 2)); 9 return 0;10 11 }12 13 14 /**15 字符串的蛮力旋转 较优的方法下次更新16 17 @param s 字符串18 @param n 字符串的长度19 */20 void leftShiftOne(char *s, int n){21 22 //保存第一个字符串23 char t = s[0];24 for (int i = 1; i < n; i++) {25 //往前挪26 s[i-1] = s[i];27 }28 // "最后一位" 赋值为 "第一位" 的值29 s[n-1] = t;30 31 }32 33 34 /**35 把长度为n的字符串的 m 位进行旋转操作36 37 @param s 字符串s38 @param n 字符串s的长度39 @param m 字符串s要旋转的位数40 41 @return 返回旋转的结果42 */43 char* leftRotateString(char *s, int n, int m){44 while(m--){45 leftShiftOne(s, n);46 }47 return s;48 }