# 移动字符串 给定一个字符串长度为 nn 的字符串 s1 (10 #include using namespace std; void reverse(char *a, int start, int end) { int i, j, temp; for (i = start, j = end; i < j; i++, j--) { temp = a[i]; a[i] = a[j]; a[j] = temp; } } void turnleft(char *a, int i, int n) { int left = i % n; if (left == 0) return; ______________; return; } int main() { char a[1024]; int i; cin >> i; cin >> a; int n = strlen(a); turnleft(a, i, n); cout << a << endl; } ``` ## template ```cpp #include #include using namespace std; void reverse(char *a, int start, int end) { int i, j, temp; for (i = start, j = end; i < j; i++, j--) { temp = a[i]; a[i] = a[j]; a[j] = temp; } } void turnleft(char *a, int i, int n) { int left = i % n; if (left == 0) return; reverse(a, 0, left - 1); reverse(a, left, n - 1); reverse(a, 0, n - 1); return; } int main() { char a[1024]; int i; cin >> i; cin >> a; int n = strlen(a); turnleft(a, i, n); cout << a << endl; } ``` ## 答案 ```cpp reverse(a, 0, left - 1); reverse(a, left, n - 1); reverse(a, 0, n - 1); ``` ## 选项 ### A ```cpp reverse(a, left, n - 1); reverse(a, 0, n - 1); ``` ### B ```cpp reverse(a, 0, left - 1); reverse(a, left, n - 1); ``` ### C ```cpp reverse(a, 0, left - 1); reverse(a, 0, n - 1); ```