第一种方法
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
void left_move(char* str, int k)
{
int i = 0;
for (i = 0; i < k; i++)
{
char tmp = *str;
int j = 0;
while (*(str+j+1))
{
*(str + j) = *(str + j + 1);
j++;
}
*(str + j) = tmp;
}
}
int main()
{
char str[] = "ABCD";
int a = 0;
printf("请输入左旋的字符个数\n");
scanf("%d", &a);
printf("%s\n", str);
left_move(str,a);
printf("%s\n", str);
system("pause");
return 0;
}
第二种方法
#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
void left_move(char* str, int k)
{
int i = 0;
char tmp;
for (i = 0; i < (k % 4); i++)
{
tmp = *(str+i);
*(str + i) = *(str + 4 + i);
*(str + 4 + i) = tmp;
}
}
int main()
{
char str[] = "ABCD ";
int a = 0;
printf("请输入左旋的字符个数\n");
scanf("%d", &a);
printf("%s\n", str);
left_move(str, a);
printf("%s\n", str+(a%4));
system("pause");
return 0;
}