请编写一个函数fun(),它的功能是:比较两个字符串的长度,(不得调用C语言提供的求字符串长度的函数),函数返回较K的字符串。若两个字符串长度相等,则返回第1个字符串。 例如,输入beijing<CR>shanghai<CR>(<CR>为回车键),函

admin2010-05-05  40

问题 请编写一个函数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; /*函数返回较长的字符串,若两个字符串长度相等,则返回第1个字符串*/ 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;
   }
转载请注明原文地址:https://kaotiyun.com/show/THID777K
0

相关试题推荐
最新回复(0)