# 移动字符串

给定一个字符串长度为 nn 的字符串 s1 (10<n<100) , 求出将字符串循环向左移动 k 位的字符串 s2 (1<k<n) , 例如：字符串 abcdefghijk , 循环向左移动 3 位就变成 defghijkabc

**输入描述**

输入仅两行，第一行为左移的位数 k , 第二行为字符串 s1 .

**输出描述**

输出仅一行，为将字符串 s1 左移 k 位得到的字符串 s2 .

**样例输入**

```json
3
abcdefghijk
```

**样例输出**

```json
defghijkabc
```

以下程序实现了这一功能，请你填补空白处内容：

```cpp
#include <iostream>
#include <string.h>
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 <iostream>
#include <string.h>
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);
```