strcpy(b,a+n); \\ a+n,a代表a[0]的地址再加上n,表示要把a[n]之后的字符串(即那些不用循环右移的字符,共有m个)复制到数组b中。这时b[]="defghijk"。 \\ strcpy(b+m,a); \\ b+m, 因为上面已经把没有循环的m个字符赋给了b,所以b[m]之前的不能在赋值了,只能把a的全部字符串赋给b[m]...
void LoopMove(char *pStr, int steps){ int n = strlen(pStr) - steps; char tmp[MAX_LEN]; memcpy(tmp, pStr+n, steps); //拷贝字符串 memcpy(pStr+steps, pStr, n); memcpy(pStr, tmp, steps); //合并得到结果 } int main(){ char str[] = "www.coderbbs.com"; LoopMove(str, 3); ...
你要循环左移3位变成ijkabcdefgh(也有写出ijkabcdefghi);或右移三位变成d