📄 subject_26586.htm
字号:
<p>
序号:26586 发表者:月明风清 发表日期:2003-01-02 21:15:16
<br>主题:紧急求救,在线等,帮忙看看程序错在哪了?
<br>内容:程序想要实现功能:找出字符串A和字符串B中共同包含的最长的子字符串。我编的程序如下,帮忙看看错在哪了,最好哪位好心人帮忙给改一下,很着急,在线等,谢谢。<BR>#include "stdio.h"<BR>#include "string.h"<BR><BR>int cmp(char *p1,char *p2)<BR>{<BR> int num=0;<BR> while(*p1!=*p2)<BR> {<BR> p1++;<BR> p2++;<BR> num++;<BR> }<BR> return num;<BR>}<BR>main()<BR>{<BR>char *temp;<BR>char *str1="adggabcdert";<BR>char *str2="dfggabcdstt";<BR>puts(str1);<BR>puts(str2);<BR>int m,n;<BR>m=0;<BR>temp=NULL;<BR>while(str1!='\0')<BR>{<BR> while(str2!='\0')<BR> {<BR> if(str1[0]=='a')<BR> {<BR> n=cmp(str1,str2);<BR> if(n>m)<BR> {<BR> m=n;<BR> strcpy(temp,str1);<BR> }<BR> }<BR> str2++;<BR> }<BR> str1++;<BR>}<BR>return 0;<BR>}<BR>
<br><a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p>
<hr size=1>
<blockquote><p>
回复者:tjhe 回复日期:2003-01-02 21:20:34
<br>内容:int cmp(char *p1,char *p2)<BR>{<BR> int num=0;<BR> while(*p1!=*p2) //while(*p1 && *p2 && *p1==*p2)<BR> {<BR> p1++;<BR> p2++;<BR> num++;<BR> }<BR> return num;<BR>}<BR><BR><BR>主函数中:<BR><BR>char * pstr1 = str1;<BR>char * pstr2 = str2;<BR><BR>while(str1!='\0') //while(*str1!='\0')<BR>{<BR> while(str2!='\0') //while(*str2!='\0') <BR> {<BR> // if(str1[0]=='a')<BR> // {<BR> n=cmp(str1,str2);<BR> if(n>m)<BR> {<BR> m=n;<BR> // strcpy(temp,str1); //temp还没有分配空间,不知此句有什么用途<BR> }<BR> // }<BR> str2++;<BR> }<BR> str1++;<BR> str2 = pstr2;<BR>}<BR>temp = (char*)malloc(m+1);<BR>strncpy(temp,p,m);<BR>temp[m] = '\0';<BR>puts(temp);<BR><BR><BR>结果:<BR>#include "stdio.h"<BR>#include "malloc.h"<BR>#include "string.h"<BR><BR>int cmp(char *p1,char *p2)<BR>{<BR> int num=0;<BR> while(*p1 && *p2 && *p1==*p2)<BR> {<BR> p1++;<BR> p2++;<BR> num++;<BR> }<BR> return num;<BR>}<BR>main()<BR>{<BR>char *temp;<BR>char *str1="adggabcdert";<BR>char *str2="dfggabcdstt";<BR>puts(str1);<BR>puts(str2);<BR>int m,n;<BR>m=0;<BR>temp=NULL;<BR>char * pstr2 =str2;<BR>char * p;<BR>while(*str1!='\0')<BR>{<BR> while(*str2!='\0')<BR> {<BR> // if(str1[0]=='a')<BR> // {<BR> n=cmp(str1,str2);<BR> if(n>m)<BR> {<BR> m=n;<BR> p = str2;<BR> // strcpy(temp,str1);<BR> }<BR> // }<BR> str2++;<BR> }<BR> str1++;<BR> str2 =pstr2;<BR>}<BR> <BR>temp = (char*)malloc(m+1);<BR>strncpy(temp,p,m);<BR>temp[m] = '\0';<BR>puts(temp);<BR>printf("m=%d",m);<BR><BR>return 0;<BR>}<BR><BR>2003-1-2 21:45:04
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -