/**//********************************************************************** 字符串移动函数 给定一个字符串,要求在给定位置进行左移。例如:给定”abcdefg”,给定 i = 3进行左移,得到的结果应该为”defgabc” ***********************************************************************/char* MoveLeft1(char *str, int p)...{ int len = strlen(str); char *temp = new char[len + 1]; strncpy(temp, str, p); strncpy(str, str + p, len - p); strncpy(str + len - p, temp, p); delete []temp; temp = NULL; return str;}/**//* from pi positon reverse the len char */char* ReverseString(char *str, int pi, int len)...{ assert(str != NULL); char *p = str + pi; char *q = str + pi + len - 1; for (; p < q; p++, q--) ...{ *p = *p ^ *q; *q = *p ^ *q; *p = *p ^ *q; } return str;}/**//* another implemention using (a'b')'= ba */char* MoveLeft2(char *str, int p)...{ int len = strlen(str); ReverseString(str, 0, p); ReverseString(str, p, len - p); ReverseString(str, 0, len); return str;}/**//* rotate move left */char* MoveLeft3(char *str, int p)...{ int len = strlen(str); for (int i = 0; i < p; i++) ...{ int temp = str[0]; for (int j = 1; j < len; j++) ...{ str[j - 1] = str[j]; } str[len - 1] = temp; } return str;}