|
以文本方式查看主题 - 中文XML论坛 - 专业的XML技术讨论区 (http://bbs.xml.org.cn/index.asp) -- 『 计算机考研交流 』 (http://bbs.xml.org.cn/list.asp?boardid=67) ---- 求助---vc高手 (http://bbs.xml.org.cn/dispbbs.asp?boardid=67&rootid=&id=61904) |
|
-- 作者:mazheng23 -- 发布时间:4/27/2008 9:19:00 PM -- 求助---vc高手 小弟做了个字符串匹配算法,可不管怎么调试都不能正常返回,希望大虾帮忙指正,先谢谢了 class string{//构造字符串类 }; string& string::operator =(string& s)//‘=’符号重载用于对一个字符串类赋值 delete[]s.str; bool Findpat(string s,string p,int startindex)//字符串模式匹配算法,含通配符,S为目标串P为子串 if(a) |
|
-- 作者:dq85 -- 发布时间:4/27/2008 11:07:00 PM -- Findpat函数中只创建了一个temp,你两个s1=s.substr(temp,i,m-i);和s2=p.substr(temp,j,n-j);都调用它,但是s.substr中存在delete []str;,那第二次时当然无法DELETE了,第一次已经释放空间了嘛 另外小问题就是 if((lastindex-i)<0) return -1;,BOOL返回了-1 |
|
-- 作者:mazheng23 -- 发布时间:4/28/2008 9:27:00 AM -- 大牛,我仔细又看了看确实是这样内存方面出的问题,可我改了之后还是不能正常返回啊,都快郁闷死我了,谢谢你的关注啊 |
|
-- 作者:dq85 -- 发布时间:4/28/2008 10:56:00 AM -- 你怎么改的啊,substr函数其实只用2个参数就可以了啊,我都在电脑上编译运行通过了啊,不过只是通过你给的字符串,别的没试 |
|
-- 作者:dq85 -- 发布时间:4/28/2008 10:59:00 AM -- string& string::substr(int index,int count)//对一个字符串的实例取子串 { int i; int left=strlen(str)-index; char *p,*q; string s; delete[]s.str; s.str=new char[count+1]; p=s.str; q=&str[index]; for(i=0;i<count;i++) { p[i]=q[i]; } p[i]='\0'; return s; } 类函数声明和调用时函数参数个数也要改 |
|
-- 作者:mazheng23 -- 发布时间:4/28/2008 11:07:00 AM -- 大哥,我是不是太笨了,按你的说法改了,还是有错,我程序的BUG太多了,好象都是内存管理方面的,要不我加你Q行不 |
|
-- 作者:dq85 -- 发布时间:4/28/2008 11:11:00 AM -- 38976893 |
|
W 3 C h i n a ( since 2003 ) 旗 下 站 点 苏ICP备05006046号《全国人大常委会关于维护互联网安全的决定》《计算机信息网络国际联网安全保护管理办法》 |
46.875ms |