详细代码如下:
#include <stdio.h>
#include <string.h>
#define N 80
void fun (char *w,int m)
{
int i, j;
char t;
for(i = 1; i <= m; i++) //进行m 次循环左移
{
t = w[0];
for(j = 1; w[j] != '\0'; j++) //从第二个字符开始以后的每一个字符都依次前移一个字符
w[j-1] = w[j];
w[j-1] = t; //将第一个字符放到最后一个字符
}
/*
analyse:
把下标从m+1 到字符串末尾 赋值到字符串开始;
把字符串第一个 到 第m个 赋值到字符串m+2;
*/
/* ERROR:
int i,j = 0;
int c = strlen(w);
for(i = m; i < c; i++)
{
w[j++] = w[i];
}
for(i = 0; i<m; i++)
{
w[j++] = w[i];
//j++;
}
w[j] ='\0';
*/
}
void main()
{
FILE *wf;
char a[N]= "ABCDEFGHIJK",b[N]= "ABCDEFGHIJK";
int m;
printf("The origina string :\n");
puts(a);
printf("\n\nEnter m: ");
scanf("%d",&m);
fun(a,m);
printf("\nThe string after moving :\n");
puts(a);
printf("\n\n");
/******************************/
wf=fopen("out.dat","w");
fun(b,3);
fprintf(wf,"%s",b);
fclose(wf);
/*****************************/
}