请补充函数fun,该函数的功能是比较字符串str1和str2的大小,井返回比较的结果。
例如: 当str1=“cdef",str2=“cde”时,函数fun()返回“>”。
注意:部分源程序给出如下。
请勿改动主函数main 和其他函数中的任何内容,仅在函数fun()的横线上填入所编写的若干表达式或语句。
试题程序:
# include< stdio, h>
#include<conio. h>
#define N 80
char *fun (char *str1,char *str2)
char *p1=str1, *p2=str2;
while (*p1 & & *p2 )
if ( 【1】 )
return "<";
if( 【2】 )
return ">";
p1++;
p2++;
if (*p1=*p2)
return "==";
if (*p1== 【3】 )
return "<";
else
return ">";
main()
char str1 [N], str2 [N];
clrscr ();
printf ("Input str1: \n");
gets (str1);
printf ("Input str2: \n");
gets (str2);
printf ("\n*****the result*****\n");
printf ("\nstr1 %s str2", fun (str1, str2) );
参考答案:[1] *p1<*p2 [2] *p1>*p2 [3] ‘\0’
解析: 填空1:比较两个字符串的大小,是从第一个字符开始比较,如果两字符不相等,则由字符的大小决定字符串 P2指向字符串str2,如果p1所指的字符小于p2所指的字符,则字符串str1小于字符串str2。填空2:如果p1所指的字符大于p2所指的字符,则字符串str1 大于字符串str2。填空3:如果str1是str2 的前一部分,则str1 的所有字符都等于str2 中的对应字符,而字符串结束标记符‘\0’小于其他字符,所以,这里如果p1所指的字符等于‘\0’,则表示字符串str1小于字符串str2。