请补充函数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 "<"; elsereturn ">"; } 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。