20104 3 路徑解析

2021-10-06 20:12:03 字數 984 閱讀 6119

題目描述:

解題思路:

用到了string的find、earse、和rfind(反向查詢)。

是按照4種不一樣的情況,分別是

①:多餘的/

當有多餘的/時就可以刪去

②刪除/./的情況

③刪除/…/

這個地方涉及到,如果/…/不是在一開始就出現的話,就要反向找到第乙個/,再確定刪除的位置

④刪除末尾的/

解決**如下:

#include

#include

using

namespace std;

intmain()

if(str.

size()

==0)//注意考慮輸入為空的情況

//刪除多餘的"/"

while

((i=str.

find

("//"))

!=-1)

str.

erase

(i,count-1)

;}//刪除"/*/"

while

((i=str.

find

("/./"))

!=-1)

//處理"/**/"

while

((i=str.

find

("/../"))

!=-1)

}//刪除末尾的"/"

if(str.

size()

>

1&& str[str.

size()

-1]==

'/') str.

erase

(str.

size()

-1);

cout<

}return0;

}

201604 3 路徑解析

問題描述 在作業系統中,資料通常以檔案的形式儲存在檔案系統中。檔案系統一般採用層次化的組織形式,由目錄 或者資料夾 和檔案構成,形成一棵樹的形狀。檔案有內容,用於儲存資料。目錄是容器,可包含檔案或其他目錄。同乙個目錄下的所有檔案和目錄的名字各不相同,不同目錄下可以有名字相同的檔案或目錄。為了指定檔案...

201604 3 路徑解析

問題描述 在作業系統中,資料通常以檔案的形式儲存在檔案系統中。檔案系統一般採用層次化的組織形式,由目錄 或者資料夾 和檔案構成,形成一棵樹的形狀。檔案有內容,用於儲存資料。目錄是容器,可包含檔案或其他目錄。同乙個目錄下的所有檔案和目錄的名字各不相同,不同目錄下可以有名字相同的檔案或目錄。為了指定檔案...

CCF201604 3路徑解析

本題會給出一些路徑,要求對於每個路徑,給出正規化以後的形式。乙個路徑經過正規化操作後,其指定的檔案不變,但是會變成乙個不包含 和 的絕對路徑,且不包含連續多個 符號。如果乙個路徑以 結尾,那麼它代表的一定是乙個目錄,正規化操作要去掉結尾的 若這個路徑代表根目錄,則正規化操作的結果是 若路徑為空字串,...