//第一种方法 void left_reverse(char *str,int k) { assert(str); char*Psrc = str; int len = strlen(str); while (k--) { char ret = Psrc[0]; for (int i = 0; i < len-1; i++) { Psrc[i] = Psrc[i+1]; } Psrc[len-1] = ret; } } int main() { char str[] = "asddf"; left_reverse(str,2); printf("%s\n",str); system("pause"); } //三步旋转法 char* left_reverse(char *str, int k) { assert(str); int len = strlen(str); *(str + k + len) = '\0'; return (str + k); } int main() { char str[20] = "asddf"; char* ret = left_reverse(str, "asddf"); /*char* ret = strcat(str, str1);*/ printf("%s\n",ret); system("pause"); }