*start = *end; *end = tmp; start ++; end --; } return ptmp; } char *left(char *s, int pos) //pos为要旋转的字符个数,或长度,下面主函数测试中,pos=3。 { int len = strlen(s); invert(s, s + (pos - 1)); //如上,X->X^T,即 abc->cba invert(s + pos, s + (len - 1)); //如上,Y->Y^T,即 def->fed invert(s, s + (len - 1)); //如上,整个翻转,(X^TY^T)^T=YX,即 cbafed->defabc。 return s; } int main() { char s[] = "abcdefghij"; puts(left(s, 3)); return 0; }
1.2、答案V0.3版中,第26题
|