XDOJ T84 目錄操作

2021-10-01 15:08:38 字數 1701 閱讀 3969

這題同樣是我在xdoj中長時間以來沒有做出來的三道題目之一。只能說是我想得太簡單了。題目的樣例我覺得用這句話來形容再合適不過了:只有你想不到,沒有他做不到。

先貼題目

目錄操作

字串處理

1s256kb

在作業系統中,檔案系統一般採用層次化的組織形式,由目錄(或者資料夾)和檔案構成,形成一棵樹的形狀。

有乙個特殊的目錄被稱為根目錄,是整個檔案系統形成的這棵樹的根節點,在類linux系統中用乙個單獨的 「/」符號表示。

因此乙個目錄的絕對路徑可以表示為「/d2/d3」這樣的形式。

當前目錄表示使用者目前正在工作的目錄。為了切換到檔案系統中的某個目錄,可以使用「cd」命令。

假設當前目錄為「/d2/d3」,下圖給出了cd命令的幾種形式,以及執行命令之後的當前目錄。

現在給出初始時的當前目錄和一系列目錄操作指令,請給出操作完成後的當前目錄。

第一行包含乙個字串,表示當前目錄。

後續若干行,每行包含乙個字串,表示需要進行的目錄切換命令。

最後一行為pwd命令,表示輸出當前目錄

注意:所有目錄的名字只包含小寫字母和數字,cd命令和pwd命令也都是小寫。最長目錄長度不超過200個字元。

當前目錄已經是根目錄時,cd … 和cd /不會產生任何作用

輸出乙個字串,表示經過一系列目錄操作後的當前目錄

/d2/d3/d7

cd …

cd /

cd /d1/d6

cd d4/d5

pwd

/d1/d6/d4/d5

我想得太簡單了

被這題坑到了無底深淵以後,終於寫出來了滿分**

#include

#include

intmain()

,str[

201]

=,a[4]

;/*最長目錄長度為兩百個字元,陣列長度定義為201絕對不會出問題

其中s陣列為當前目錄,str陣列為輸入的目錄切換命令(不包含cd),a陣列則儲存cd或pwd

把cd與後面的命令分別儲存到兩個陣列中使得string.h中的一些函式得以使用,十分方便*/

int i,len=0;

//經常需要用到陣列s的長度,總不能每次都strlen(s)吧,那樣執行速度會很慢

gets

(s);

while(1

) s[len-i]

='\0'

;//。。。if(

!strlen

(s))s[0]

='/'

;//如果s陣列長度為0,則說明cd ..後回到了根目錄

}else

if(str[0]

=='/'

)else

// if('a'<=str[0]&&str[0]<='z')

// printf("%s\nlen:%d\n",s,strlen(s));

}printf

("%s"

,s);

return0;

}

弱弱的問一句:我能不能無恥地求一波贊? otz qaq

reactos作業系統實現 84

在系統裡user32.dll,kernel32.dll,shell32.dll,gdi32.dll,rpcrt4.dll,comctl32.dll,advapi32.dll,version.dll等dll代表了win32 api的基本提供者。win32 api中的所有呼叫最終都轉向了ntdll.dl...

Linux目錄操作

建立目錄 include include int mkdir const char pathname,mode t mode 第乙個引數是要建立目錄的名字,第二個引數指定了目錄訪問許可權,程序的umask值會影響到最終生成目錄的許可權。建立成功的時候返回0,失敗返回 1.mkdir會在建立的目錄同時...

python 目錄操作

1 獲得當前路徑 在python中可以使用os.getcwd 函式獲得當前的路徑。其原型如下所示。os.getcwd 該函式不需要傳遞引數,它返回當前的目錄。需要說明的是,當前目錄並不是指指令碼所在的目錄,而是所執行指令碼的目錄。例如,在pythonwin中輸入如下指令碼。import os pri...