问答题
编写函数fun,其功能是:比较字符串的长度,不得使用C语言提供的求字符串长度的函数,函数返回较长的字符串。若两个字符长度相同,则返回第一个字符串。
例如,输入“beijing”<CR>“shanghai”<CR>(<CR>为Enter键),函数将返回“shanghai”。
注意:部分源程序给出如下。
请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。
试题程序:
#include<stdio.h>
char *fun(char *s, char *t)
{
}
void main()
{
char a[20], b[10], *p, *q;
printf("Input 1th string:");
gets(a);
printf("Input 2th string:");
gets(b);
printf("%s", fun(a, b));
}
【正确答案】
【答案解析】char *fun (char *s, char *t)
{
int i, j;
for(i=0; s[i]!= "/0"; i++); /*求字符串的长度*/
for(j=0; t[j]!= "/0"; j++);
if(i<=j) /*比较两个字符串的长度*/
return t; /*函数返回较长的字符串,若两个字符串长度相等,则返回第1个字符串*/
else
return s;
}
[解析] 本题中,第1个for循环的作用是求出s串的字符个数i,第2个for循环的作用是求出t串的字符个数j,因为任何循环都要控制一条语句,所以在每一个for循环语句后面加上一个分号以结束循环。