请编一个函数fun(char*s),函数的功能是把S所指字符串中的内容逆置。 例如:字符串中原有的字符串为:abcdefg,则调用该函数后,串中的内容为:gfedcba。 注意:部分源程序存在文件PROGl.C中。 请勿改动主函数m

admin2020-11-27  35

问题 请编一个函数fun(char*s),函数的功能是把S所指字符串中的内容逆置。
    例如:字符串中原有的字符串为:abcdefg,则调用该函数后,串中的内容为:gfedcba。
    注意:部分源程序存在文件PROGl.C中。
    请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。
#inelude
#include
#define N 81
fun(char*s)
{
}
NONO()
{/*请在此函数内打开文件,输入测试数据,调用fun函数,输出数据,关闭文件。  */
  int i;
  char a[N];
  FILE*rf,*wf;
  rf=fopen("in.dat","r");
  wf=fopen("out.dat","w");
  for(i=0;i<10 ; i++)  {
    fscanf(rf,"%s",a);
    fun(a);
    fprintf(wf,"%s\n",a);
  }
  fclose(rf);
  fclose(wf);
}
main()
{  char a[N];
  printf("Enter a string:");gets
(a);
  printf("The original string is:
"); puts(a);
  fun(a);
  printf("\n");
  printf("The string after
modified:");
  putS(a);
  NONO();
}

选项

答案char b[N]; int i=0,j; memset(b,0,N); for(j=strlen(S)一1; j>=0; j--) b[i++]=s[j]; strcpy(s,b);

解析 进入fun函数,根据前面的分析:
  首先求得字符串的长度,然后通过循环进行字符交换。要注意的是,如果字符串长度赴奇数,则最中间的元素在逆置前后的位置是没有改变的。
转载请注明原文地址:https://jikaoti.com/ti/ajD0FFFM
0

最新回复(0)