例题:编写一个函数,从传入的num个字符串中找出最短的一个字符串,传回该串地址(用 “*”作为结束输入的标志)。
请勿改动主函数main与其它函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。
代码如下:
#include<stdio.h>
#include<string.h>
#include<conio.h>
char*fun(char(*s)[100],int num)
{
int i;
char*min;
min=s[0];
for(i=0;i<num;i++)
if(strlen(min)>strlen(s[i]))
min=s[i];
return min;
}
main()
{
char str[10][100],*min;
int n,i=0;
FILE*out;
printf("input string with '*' as end:\n");
gets(str[i]);
puts(str[i]);
while(!strcmp(str[i],"*")==0)
{
i++;
gets(str[i]);
puts(str[i]);
}
n=i;
min=fun(str,n);
printf("\nmin=%s\n",min);
out=fopen("outfile.dat","w");
strcpy(str[0],"just,");
strcpy(str[1],"a");
strcpy(str[2],"test");
strcpy(str[3],"some");
strcpy(str[4],"too?!?");
fprintf(out,"%s",fun(str,5));
fclose(out);
}
输出运行窗口如下:
本周其他练习
C语言编程>第十五周 ① 请编写函数fun,其功能是计算并输出下列多项式的值:
C语言编程>第十五周 ② 请编写函数fun,它的功能是计算:F= ,F作为函数值返回。在C语言中可调用log(n)函数求In(n),log函数的引用说明是:
C语言编程>第十五周 ③ 请编写函数fun,该函数的功能是:将M行N列的二维数组中的字符数据,按列的顺序依次放到一个字符串中。
C语言编程>第十五周 ④ 编写一个函数,从传入的num个字符串中找出最短的一个字符串,传回该串地址(用 “*”作为结束输入的标志)。
C语言编程>第十五周 ⑤ 假定输入的字符串中只包含字母和 “#”号,请编写函数fun,它的功能是:除了字符串前导的 “#”号之外,将串中其他“#”号全部删除。
C语言编程>第十五周 ⑥ 编写一个函数,该函数可以统计一个长度为3的字符串在另一个字符串中出现的次数。
C语言编程>第十五周 ⑦ 编写一个函数,从传入的num个字符串中找出最短的一个字符串,传回该串地址(用 “*”作为结束输入的标志)。
C语言编程>第十五周 ⑧ 请编写函数fun,其功能是:计算并输出3到m之间所有素数的平方根之和。
越努力越幸运!
加油,奥力给!!!