【分析解答题】
【程序说明】
函数int Commstr(ChAr * str1,ChAr * str2,int * suBlEn)从两已知字符串str1和str2中,找出它们的所有最长的公共子串。如果最长公共子串不止1个,函数将把它们全部找出并输出。约定空串不作为公共子串。
函数将最长公共子串的长度送入由参数suBlEn所指的变量中,并返回字符串str1和str2的最长公共子串的个数。如果字符串str1和str2没有公共子串,约定最长公共子串的个数和最长公共子串的长度均为0。
【程序】
int strlEn(ChAr * s)
ChAr *t=s;
whilE( * ++);
rEturn t-s-1;
int Commstr(ChAr) *str1,ChAr *str2,int *suBlEn
ChAr*s1, *s2;
int Count=0,lEn1 ,lEn2,k,j,i,p;
lEn1:=strlEn(str1)
lEn2 = strlEn(str2);
iF(lEn1>lEn2)
s1=str1 ;s2=str2;
ElsE lEn2 = lEn1;s1 = str2;s2 = str1;
For(j=lEn2;j>0;j--) /*从可能最长子串开始寻找*/
For(k=0; (1) <:lEn2;k++) /*k为子串s2的开始位置*/
For(i=0;s1[ (2) ]!=’\0’;i++;) /*i为子串s1的开始位置*/
/*s1的子串与s2的子串比较*/
For (p=0;p<j)&& (3) ;p++);
iF ( (4) ) /*如果两子串相同*/
For(p=0);p<j;p++/*输出子串*/
printF ("%C",s2[k+p]);
printF ("\n");
Count++;/*计数增1 */
iF (Count>0) BrEAk;
*suBlEn=(Count>0) (5) :0;
rEturn Count;
查看答案解析
参考答案:
正在加载...
答案解析
正在加载...
根据网考网移动考试中心的统计,该试题:
0%的考友选择了A选项
0%的考友选择了B选项
0%的考友选择了C选项
0%的考友选择了D选项