请编写函数fun,函数的功能是:移动字符串中的内容,移动的规则如下:把第1到第m个字符,平移到字符串的最后,把第m+1到最后的字符移到字符串的前部。 例如,字符串中原有的内容为:ABCDEFGHIJK,m的值为3,则移动后,字符串中的内容应该是:D

admin2013-03-29  26

问题 请编写函数fun,函数的功能是:移动字符串中的内容,移动的规则如下:把第1到第m个字符,平移到字符串的最后,把第m+1到最后的字符移到字符串的前部。
    例如,字符串中原有的内容为:ABCDEFGHIJK,m的值为3,则移动后,字符串中的内容应该是:DEFGHl脚C。
    注意:部分源程序在文件PROGI.C中。
    请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。
#include
#include
#define N 80
void funl(char*w)  /*本函数的功能
是将字符串中字符循环左移一个位置*/
{
  int i;char t;
  t=w[0];
  for(i=0;i<(int)strlen(w)-1;i++)
    w=w[i+1];
  w[strlen(w)一1]=t;
}
void fun(char*w,int m)  /*可调用
fun1函数左移字符*/
{
}
main()
{  char a[N]=”ABCDEFGttIJK”;
int m;void NONO();
  printf(”The origina1 string:\n”);
puts(a);
  printf(”\n\nEnter nl:  ”);scanf
(”%d¨,&m);
  fun(a,m);
  printf("\nThe string after moving:
\n”);puts(a);
  printf(”\n\n”);
  NONO();
}
void NONO()
{/*请在此函数内打开文件,输入测试数据,
调用fun函数,输出数据.关闭文件。*/
  FILE*rf,*wf;char a[N];int m,i;
  rf=fopen(”in.clat”,”r”);
  wf=fopen(”out.ctat”,”W”);
  for(i=0;i<10;i++){
    fscarlf(rf,”%d%s”,&m,a);
    fun(a,m);
    fprintf(wf,”%s\n”,a);
  }
  fclose(rf),fclose(wf);
}

选项

答案int i; for(i=0; i
解析 函数fun1的功能是将字符串中字符循环左移一个位置,m次调用该函数循环左移m个字符,因此在fun函数中循环调用fun1函数就可以完成m个字符的移动。
转载请注明原文地址:https://kaotiyun.com/show/gWJp777K
0

最新回复(0)