void left_move(char a[], int k)
{
k = k % 5; //左移7位和2位没区别
int len = strlen(a);
int i = 0;
for (i = 0; i < k; i++) //要做k次操作
{
int j = 0;
char temp = a[0]; //创建一个临时变量接收a[0],因为后面a[0]发生了改变
for (j = 0; j < len - 1; j++)
{
a[j] = a[j + 1]; //因为在整个数组中j+1最多等于len - 1所以j<len - 1
}
a[j] = temp;
}
}
int main()
{
char a[] = "ABCDE";
int k = 2;
left_move(a,k);
printf("%s\n", a);
return 0;
}
void left_move(char a[], int k)
{
int len = strlen(a);
char*p = (char*)malloc((2 * len + 1)*sizeof(char));
strcpy(p, a);
strcat(p, a);
strncpy(a, p + k, len);
free(p);
}
int main()
{
char a[] = "ABCDE";
int k = 2;
left_move(a, k);
printf("%s", a);
return 0;
}