本文共 581 字,大约阅读时间需要 1 分钟。
方法1:
把要移位的字符,复制到 a 中,s 中的字符串前移,把a中的字符移动到s的后面// n 移位的个数,m 字符串总个数void fun(char *s, int n, int m){ char *a = (char*)malloc(sizeof(char)*n); int i, j; for (i = 0; i < n; i++) { a[i] = s[i]; } for (j = 0; i < m; i++,j++) { s[j] = s[i]; } for (i = 0; i < n; i++,j++) { s[j] = a[i]; } free(a);}
方法2:
三步反转,把字符串分为2部分,把2部分的字符分别反转,再把整个字符都反转void reversal(char *s,int begin,int end){ char t; while (begin < end) { t = s[begin]; s[begin++] = s[end]; s[end--] = t; }}void fun(char *s,int n,int m){ reversal(s, 0, n - 1); reversal(s, n, m - 1); reversal(s, 0, m - 1);}
转载地址:http://tqyo.baihongyu.com/