填空题
请补充函数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 ({{U}} 【1】 {{/U}})
return "<";
if({{U}} 【2】 {{/U}})
return ">";
p1++;
p2++;
}
if (*p1=*p2)
return "==";
if (*p1=={{U}} 【3】 {{/U}})
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、[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。