華為機試 簡單錯誤記錄

2021-08-05 21:06:54 字數 2201 閱讀 2340

題目描述

開發乙個簡單錯誤記錄功能小模組,能夠記錄出錯的**所在的檔名稱和行號。處理:

1.記錄最多

8條錯誤記錄,對相同的錯誤記錄

(即檔名稱和行號完全匹配

)只記錄一條,錯誤計數增加;

(檔案所在的目錄不同,檔名和行號相同也要合併)2.

超過16

個字元的檔名稱,只記錄檔案的最後有效

16個字元;

(如果檔名不同,而只是檔名的後

16個字元和行號相同,也不要合併)3.

輸入的檔案可能帶路徑,記錄檔名稱不能帶路徑

輸入描述

:

一行或多行字串。每行包括帶路徑檔名稱,行號,以空格隔開。

檔案路徑為

windows格式

如:e:\v1r2\product\fpgadrive.c 1325

輸出描述

:

將所有的記錄統計並將結果輸出,格式:檔名**行數數目,乙個空格隔開,如

: fpgadrive.c 1325 1

結果根據數目從多到少排序,數目相同的情況下,按照輸入第一次出現順序排序。

如果超過

8條記錄,則只輸出前

8條記錄.

如果檔名的長度超過

16個字元,則只輸出後

16個字元

示例

1輸入

e:\v1r2\product\fpgadrive.c1325 輸出

fpgadrive.c1325 1

分析:首先我們把輸入的每乙個字串擷取最後乙個

\之後的子串(去掉路徑,只包含檔名、空格、行號),然後把此子串和已有的子串比較,有相同的記錄,那麼此條記錄數就增加,否則新增在容器最後,然後我們把所有記錄按記錄數從大到小排序,之後我們一一輸出每一天記錄,超過

8條後就不輸出。要保證每條的檔名不能超過

16個字元,要把每條記錄分成

2部分,擷取不超過

16個字元的檔名和行號。具體程式如下:

#include #include #include #include using namespace std;

inline bool compare(paira, pairb)

//先把輸入字串截取出檔名和行號,儲存在容器中(同時合併重複項,記錄數增加),輸出時擷取檔名的後16位;

int main()

++j;

} if (j == res.size()) res.push_back(make_pair(filename, 1)); //如果沒有相同的,就新增到最後;

} sort(res.begin(), res.end(), compare); //按錯誤記錄數進行排序;

int sum = res.size()>8 ? 8 : res.size();

for (int i = 0; i < sum; ++i)

return 0;

}

補充知識:

string-----

find()函式

原型如下:

(1)   

size_t find(conststring &str,size_t pos=0) const; //

查詢物件

string

型別字串;

(2)   

size_t find(constchar* str,size_t pos=0) const;  //

查詢物件字串;

(3)   

size_t find (constchar *str,size_t pos,size_t n)const; //

查詢物件字串的前

n個字元;

(4)   

size_t find (charc,size_t pos=0 )const;  //

查詢物件字元; 找到

---返回

size_t

型別的第乙個字元的索引(從

0開始);

沒找到—返回

string

::npos

string

的rfind()

函式類似,只是從後向前查詢。

簡單錯誤記錄 華為機試 C C

開發乙個簡單錯誤記錄功能小模組,能夠記錄出錯的 所在的檔名稱和行號。處理 1 記錄最多8條錯誤記錄,迴圈記錄,對相同的錯誤記錄 淨檔名稱和行號完全匹配 只記錄一條,錯誤計數增加 2 超過16個字元的檔名稱,只記錄檔案的最後有效16個字元 3 輸入的檔案可能帶路徑,記錄檔名稱不能帶路徑。一行或多行字串...

華為機試題 簡單錯誤記錄

開發乙個簡單錯誤記錄功能小模組,能夠記錄出錯的 所在的檔名稱和行號。處理 1 記錄最多8條錯誤記錄,迴圈記錄,對相同的錯誤記錄 淨檔名稱和行號完全匹配 只記錄一條,錯誤計數增加 2 超過16個字元的檔名稱,只記錄檔案的最後有效16個字元 3 輸入的檔案可能帶路徑,記錄檔名稱不能帶路徑。輸入描述 一行...

華為機試題 簡單錯誤記錄

開發乙個簡單錯誤記錄功能小模組,能夠記錄出錯的 所在的檔名稱和行號。處理 1.記錄最多8條錯誤記錄,對相同的錯誤記錄 即檔名稱和行號完全匹配 只記錄一條,錯誤計數增加 檔案所在的目錄不同,檔名和行號相同也要合併 2.超過16個字元的檔名稱,只記錄檔案的最後有效16個字元 如果檔名不同,而只是檔名的後...