#include <stdio.h>
#include <string.h>
#include <stdlib.h>
void reverse_middle(char *s, int pos) {
int len = strlen(s);
int mid = (len - pos) / 2;
char *tmp = (char *)malloc((len + 1) * sizeof(char));
for (int i = 0; i < mid; i++)
tmp[i] = s[i];
for (int i = mid + pos - 1, j = mid; i >= mid; i--, j++)
tmp[j] = s[i];
for (int i = mid + pos; i < len; i++)
tmp[i] = s[i];
tmp[len] = '\0';
strcpy(s, tmp);
free(tmp);
}
int main() {
char s[8] = "abcdefg";
int pos = 3;
reverse_middle(s, pos);
puts(s);
return 0;
}
/*
run:
abedcfg
*/