问题 问答题

请编写一个函数fun(),它的功能是:比较两个字符串的长度,(不得调用C语言提供的求字符串长度的函数),函数返回较K的字符串。若两个字符串长度相等,则返回第1个字符串。
例如,输入beijing<CR>shanghai<CR>(<CR>为回车键),函数将返回shanghai。
注意:部分源程序给出如下。
请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入所编写的若干语句。
试题程序:
#include<stdio.h>
char *fun(char *s, char *t)


main()

char a[20],b[10],*p,*q;
int i;
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,i;

for(i=0;s[i]!= ’\0’;i++); /*求字符串的长度*/

for(j=0;t[i]!= ’\0’;j++);

if(i>=j) /*比较两个字符串的长度*/

return s; /*函数返回较长的字符串,若两个字符串长度相等,则返回第A个字符串*/

else

return t;

}

解析:

本题中,第1个for循环的作用是求出s的字符个数i,第2个for循环的作用是求出t的字符个数j,因为任何循环都要控制一条语句,所以在每一个for循环条件后面必须要有一个分号。

本题也可用如下技巧:

char *fun(char *s,char *t)

{if(strlen(s)>=strlen(t) return s;

else return t;

}

问答题 简答题
问答题