问答题 编写一个函数,从传入的M个字符中找出最长的一个字符串,并通过形参指针max传回该串地址(用****作为结束输入的标志)。
注意:部分源程序给出如下:
请勿改动main()函数和其他函数中的任何内容,仅在函数proc()的花括号中填入所编写的若干语句。
试题程序:
#include<stdio.h>
#include<string.h>
#include<conio.h>
char*proc(char(*a)[81], int num)
{

}
void main()
{
char ss[10][81], *max;
int n, i=0;
printf("输入若干个字符串:");
gets(ss[i]);
puts(ss[i]);
while(! stremp(ss[i], "****")==0)
{
i++;
gets(ss[i]);
puts(ss[i]);
}
n=i;
max=proc(ss, n);
printf("/nmax=%s/n", max);
}
【正确答案】
【答案解析】char*proc(char(*a)[81], int M)
{
char*max;
int i=0;
max=a[0];
for(i=0; i<M; i++)
if(strlen(max)<strlen(a[i]))//找出最长的字符串
max=a[i];
return max; //返回最长字符串的地址
} [解析] 本题首先要定义一个字符指针用于保存最长的字符串,并使其初始值指向第一个字符串;再循环遍历字符串数组,通过if语句比较字符串的长度,并把最长的字符串地址赋给字符指针;最后返回最长字符串的地址。