文字檔案單詞的檢索與計數

2021-10-22 19:04:00 字數 1068 閱讀 5572

建立乙個文字檔案,統計給定單詞在文字檔案**現的總次數及位置。

文字檔案中每個單詞不包含空格且不跨行,單詞由字串行構成且區分大小寫,統計給定單詞在文字檔案**現的總次數,檢索輸出的某個單詞出現在文字中的行號、在該行**現的位置。

設計資料量大的文字,進行子串的查詢處理,分析演算法執行的時間效率,對所有輸出的匹配位置結果進行驗證,以證明演算法設計和實現的正確性。

用樸素模式匹配演算法或kmp演算法實現字串定位;可正確讀取,儲存文字。

public static int index(string s,string t,int pos)

return -1;

}

#include#include#include#pragma warning(disable:4996)

#include//catch() 任意鍵繼續

#include#include#include#includeusing namespace std;

#define maxsize 1000

struct str ;

/** 樸素模式匹配(暴力匹配)

*/int ******(str s, str goal, int begin)

if (j == m) //若相等,則說明找到匹配的子串,返回匹配位置i

return i + 1; //否則從下乙個位置重新開始比較

} return -1;}

/** 查詢的單詞的最長相等前字尾

* next[i]=j,含義是:下標為i 的字元前的字串最長相等前字尾的長度為j。

*/int* getnext(str goal_s)

else k = next[k];

//next[k]的值代表的是下標為k的字元前面的字串最長相等前字尾的長度

//也表示該處字元不匹配時應該回溯到的字元的下標

//這個值給k後又進行while迴圈判斷,此時t.data[k]即指最長相等字首後乙個字元

} return next;

}

文字檔案單詞的檢索與計數

建立乙個文字檔案,統計給定單詞在文字檔案 現的總次數及位置 就是遍歷主串,然後把待匹配字串與子串進行比對,先把待匹配子串的第乙個字母與主串進行匹配,若匹配成功,則兩串的座標依次 匹配不成功時,主串座標返回到開始匹配時的座標,待匹配串座標清零,若待匹配座標等於待匹配子串長度,則證明匹配成功,返回匹配完...

文字檔案單詞的檢索與計數預習

實驗任務 建立乙個文字檔案,統計給定單詞在文字檔案 現的總次數及位置 實現要求 文字檔案中每個單詞不包含空格且不跨行,單詞由字串行構成且區分大小寫,統計給定單詞在文字檔案 現的總次數,檢索輸出的某個單詞出現在文字中的行號 在該行 現的位置。設計資料量大的文字,進行子串的查詢處理,分析演算法執行的時間...

文字檔案單詞的檢索及計數

要求程式設計建立乙個文字檔案,每個單詞不包括空格及跨行,單詞由字串行構成且區分大小寫,完成以下功能 統計給定單詞在文字檔案 現的總次數 檢索輸出某單詞在文字檔案中首次出現的行號及位置。如下 include include include void creatfile file fp void sea...