[問題] C++字串容錯搜尋的問題

看板C_and_CPP (C/C++)作者 (Haruhi)時間15年前 (2010/12/17 20:27), 編輯推噓1(1022)
留言23則, 4人參與, 最新討論串1/1
開發平台(Platform): (Ex: VC++, Gcc, Linux, ...) Dev_c++ 問題(Question): 輸入關鍵字搜尋,可以誤差一個字元 餵入的資料(Input): 先字檔案讀入文章到buf 例如: 文章內容為 buf="abcdagcdbcdabcgabcdabgd" 關鍵字pattern="abcd" 預期的正確結果(Expected Output): 關鍵字abcd的位置為:0 15 忽略第 1 個字: bcd,0 7 15 忽略第 2 個字:a cd,0 4 15 忽略第 3 個字:ab d,0 15 19 忽略第 4 個字:abc ,0 11 15 錯誤結果(Wrong Output): 關鍵字abcd的位置為:0 4 15 19 忽略第 1 個字: bcd,0 7 15 19 忽略第 2 個字: 忽略第 3 個字: 忽略第 4 個字:abc ,0 4 11 15 程式碼(Code): (請善用置底文標色功能) 因為太多了直接放到網址上: http://codepad.org/HBuNT 補充說明(Supplement): 第二個搜尋關鍵字那裏有錯誤,想不出來... 忽略第2 跟第3個字部分想不出來@@ 小妹請大家多幫忙了... 謝謝!! -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 114.26.19.80

12/17 20:32, , 1F
點進去看到173行就傻眼了XD 要寫這麼多嗎
12/17 20:32, 1F

12/17 20:36, , 2F
新手不知道怎簡短><'',只知道依照想法去寫XDD
12/17 20:36, 2F

12/17 20:44, , 3F
以"a cd"的例子, 就是找 cd出現的位置, 再看前面是不
12/17 20:44, 3F

12/17 20:45, , 4F
"a?", 第3個case也是一樣, C++ 有string::find可以用
12/17 20:45, 4F

12/17 20:48, , 5F
就不要自己跑迴圈了, 不然用C函式 strstr 也可
12/17 20:48, 5F

12/17 23:42, , 6F
strstr我使用一下發現是從那個pattern第一字元切割字串@@
12/17 23:42, 6F

12/17 23:42, , 7F
但是我想要的是位址說> <...
12/17 23:42, 7F

12/18 00:22, , 8F
他回傳的是位址說! 你應該是看到別的函式了吧..我剛剛
12/18 00:22, 8F

12/18 00:23, , 9F
寫好了一個版本: http://ppt.cc/Hm
12/18 00:23, 9F

12/18 00:29, , 10F
是喔@@我找了很多strstr都一樣說...最後我就拿find來用了
12/18 00:29, 10F

12/18 00:31, , 11F
不好意思@@剛剛拿了您寫的程式碼用DEV RUN發現沒output說
12/18 00:31, 11F

12/18 00:33, , 12F
#define TEST_MODE 註解掉就可以了, 那是測試用的
12/18 00:33, 12F

12/18 00:36, , 13F
@@"恩恩~拿掉之後真的就可以跑了耶...只是裡面的程式碼
12/18 00:36, 13F

12/18 00:37, , 14F
對我這種初學的小妹來說都看不太懂耶> <
12/18 00:37, 14F

12/18 00:47, , 15F
XDD 學會 find、substr 之後再去想怎麼應用吧
12/18 00:47, 15F

12/18 01:47, , 16F
恩恩~我會繼續多多研究的!!謝謝您~~
12/18 01:47, 16F

12/18 01:56, , 17F
你本來輸入的地方...記憶體空間都配不夠大喔!
12/18 01:56, 17F

12/18 01:59, , 18F
回X大, 我的程式快200行 >///<
12/18 01:59, 18F

12/18 02:04, , 19F
是指char* XX=new char;這幾個部分空間不夠大嗎@@?
12/18 02:04, 19F

12/18 02:05, , 20F
哈哈哈~看來這題目的程式碼似乎無法縮減到100行以下囉XD
12/18 02:05, 20F

12/18 02:47, , 21F
如果有正規表示式的 lib 應該不用幾十行XD
12/18 02:47, 21F

12/18 09:02, , 22F
我51行XD 可是複雜度很差 http://codepad.org/Q2dn6
12/18 09:02, 22F

12/19 00:37, , 23F
是時間複雜度嗎@@?小妹只略知一二><" 謝謝X大把程式縮減了
12/19 00:37, 23F
※ 編輯: haruhi6 來自: 114.26.16.153 (12/21 01:00)
文章代碼(AID): #1D2rSoJR (C_and_CPP)
文章代碼(AID): #1D2rSoJR (C_and_CPP)