程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C++ >> C++入門知識 >> 串的模式匹配

串的模式匹配

編輯:C++入門知識

問題:采用順序結構存儲串,編寫實現一個串通配符匹配的算法,其中通配符為“?”,它可以和任何字符匹配成功,例如pattern_index("?re","there are")返回結果為2.     遇到的問題:stack around the variable “XX” was corrupted,   解答:關於MSDN的解釋是在堆棧外面讀寫某數據。錯誤是名為RTC1的編譯器檢測的。又看了更多的技術文章,發現這樣的錯誤是程序員在項目到了一定大的時候,它占用的堆棧量就比較大。我也深有體會。因為自己本來編寫一個類,運行時沒有錯,但是在添加成員屬性的時候,在其它方式不變的情況下就容易發生這樣的錯誤。所以據此我猜應該是VS2005(2008)在內部就限定了堆棧的大小,當項目足夠大的時候,就會溢出。    

int pattern_index(SqString s,SqString t)  
{  
    int i=0,j=0;  
    while(i<s.length&&j<t.length)  
    {  
        if(s.data[i]==t.data[j]||t.data[j]=='?')  
        {  
            i++;  
            j++;  
        }  
        else  
        {  
            i=i-j+1;  
            j=0;  
        }  
    }  
    if(j>=t.length)  
        return (i-t.length);  
    else  
        return -1;  
}  

 


  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved