编写一个函数,其功能是:从传入的 num个字符中找出最长的一个字符串,并通过形参指针max传回该串地址(用****作为结束输入的标识)。 注意:部分源程序在文件PROG1.C中。 请勿改动主函数main和其他函数中的任何内容,仅在函数fun

admin2019-03-19  31

问题 编写一个函数,其功能是:从传入的
num个字符中找出最长的一个字符串,并通过形参指针max传回该串地址(用****作为结束输入的标识)。
    注意:部分源程序在文件PROG1.C中。
    请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。
  试题程序:
#include < conio.h >
#include < stdio.h >
#include < string.h >
#include < stdlib.h >
char* fun (char  (* a)[81],  int
num, char *max)
{
}
void main()
{
  FILE *wf;
  char ss[10][81], *ps =NULL;
  char  s[3] [81]  ={"abcd",
"deg", "diegns"),*p= NULL;
  int i=0,n;
  system( "CLS");
  printf("输入若干个字符串:");
  gets (ss);
  puts (ss);
  while(!strcmp (ss,"****")
==0)/*用4个星号作为结束输入的标志*/
    {
    i++;
    gets (ss);
    puts (ss);
    }
   n=it
   ps = fun (ss,n,ps) ;
   printf "\nmax = % s\n",ps) ;
/******************/
   wf = fopen ("out.dat", "w") ;
   p = fun (s,3, p) ;
   fprintf (wf, "% s",p) ;
   fclose (wf) ;
/******************/
}

选项

答案char *fun (char(*a) [81], int num, char *max) { int i=0; max=a[0]; for(i=0;i < num;i++)/*找出最长的一个字符串*/ if (str1en (max) < str1en (a [i])) max =a[i]; return max;/*传回最长字符串的地址*/ }

解析 解答本题之前,首先应该明白ss是一个指向一维数组的指针变量,max是指向指针的变量,所以引用变量时要注意加上*。本程序使用循环语句遍历字符串数组,使用条件语句判断该字符串是否最长。
转载请注明原文地址:https://jikaoti.com/ti/FXf0FFFM
0

最新回复(0)